Partager via


Configurer LVM et RAID sur des appareils chiffrés

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

Cet article est un processus pas à pas qui explique comment effectuer une gestion des volumes logiques (LVM) et un RAID sur des appareils chiffrés. Le processus s’applique aux environnements suivants :

  • Distributions Linux
    • RHEL 7.6+
    • Ubuntu 18.04+
    • SUSE 12+
  • Extension Azure Disk Encryption à un seul passage
  • Extension Azure Disk Encryption à deux passages

Scénarios

Les procédures décrites dans cet article prennent en charge les scénarios suivants :

  • Configurer LVM sur des appareils chiffrés (LVM-on-crypt)
  • Configurer RAID sur des appareils chiffrés (RAID-on-crypt)

Une fois que les appareils sous-jacents sont chiffrés, vous pouvez créer les structures LVM ou RAID par-dessus cette couche chiffrée.

Les volumes physiques (VP) sont créés par-dessus la couche chiffrée. Les volumes physiques sont utilisés pour créer le groupe de volumes. Vous créez les volumes et ajoutez les entrées requises sur /etc/fstab.

Diagramme des couches des structures LVM

De la même façon, l’appareil RAID est créé par-dessus la couche chiffrée sur les disques. Un système de fichiers est créé par-dessus l’appareil RAID et ajouté à /etc/fstab comme appareil standard.

Considérations

Nous vous recommandons d’utiliser LVM-on-crypt. RAID est un choix possible lorsque LVM ne peut pas être utilisé en raison de limitations spécifiques de l’application ou de l’environnement.

Vous utiliserez l’option EncryptFormatAll. Pour plus d’informations sur cette option, consultez Utiliser la fonctionnalité EncryptFormatAll pour les disques de données sur des machines virtuelles Linux.

Bien que vous puissiez utiliser cette méthode lorsque vous chiffrez également le système d’exploitation, nous chiffrons uniquement les lecteurs de données ici.

Les procédures supposent que vous avez déjà examiné les conditions préalables indiquées dans Scénarios Azure Disk Encryption sur les machines virtuelles Linux et dans Démarrage rapide : Créer et chiffrer une machine virtuelle Linux avec Azure CLI.

La version Azure Disk Encryption à deux passages est sur le point d’être déconseillée et ne doit plus être utilisée sur les nouveaux chiffrements.

Étapes générales

Lorsque vous utilisez les configurations « on-crypt », utilisez le processus décrit dans les procédures suivantes.

Notes

Nous utilisons des variables dans l’ensemble de l’article. Remplacez les valeurs en conséquence.

Déployer une machine virtuelle

Les commandes suivantes sont facultatives, mais nous vous recommandons de les appliquer sur une machine virtuelle nouvellement déployée.

PowerShell :

New-AzVm -ResourceGroupName ${RGNAME} `
-Name ${VMNAME} `
-Location ${LOCATION} `
-Size ${VMSIZE} `
-Image ${OSIMAGE} `
-Credential ${creds} `
-Verbose

Azure CLI :

az vm create \
-n ${VMNAME} \
-g ${RGNAME} \
--image ${OSIMAGE} \
--admin-username ${username} \
--admin-password ${password} \
-l ${LOCATION} \
--size ${VMSIZE} \
-o table

Attacher des disques à la machine virtuelle

Répétez les commandes suivantes pour un nombre $N de nouveaux disques que vous souhaitez attacher à la machine virtuelle.

PowerShell :

$storageType = 'Standard_LRS'
$dataDiskName = ${VMNAME} + '_datadisk0'
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $LOCATION -CreateOption Empty -DiskSizeGB 5
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName ${RGNAME}
$vm = Get-AzVM -Name ${VMNAME} -ResourceGroupName ${RGNAME}
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 0
Update-AzVM -VM ${VM} -ResourceGroupName ${RGNAME}

Azure CLI :

az vm disk attach \
-g ${RGNAME} \
--vm-name ${VMNAME} \
--name ${VMNAME}datadisk1 \
--size-gb 5 \
--new \
-o table

Vérifier que les disques sont attachés à la machine virtuelle

PowerShell :

$VM = Get-AzVM -ResourceGroupName ${RGNAME} -Name ${VMNAME}
$VM.StorageProfile.DataDisks | Select-Object Lun,Name,DiskSizeGB

Liste des disques attachés dans PowerShell

Azure CLI :

az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table

Liste des disques attachés dans Azure CLI

Portail :

Liste des disques attachés dans le portail

Système d’exploitation :

lsblk

Liste des disques attachés dans le système d’exploitation

Configurer les disques à chiffrer

Cette configuration est effectuée au niveau du système d’exploitation. Les disques correspondants sont configurés pour un chiffrement traditionnel par le biais d’Azure Disk Encryption :

  • Les systèmes de fichiers sont créés par-dessus les disques.
  • Des points de montage temporaires sont créés pour monter les systèmes de fichiers.
  • Les systèmes de fichiers sont configurés sur /etc/fstab afin d’être montés au moment du démarrage.

Vérifiez la lettre d’appareil attribuée aux nouveaux disques. Dans cet exemple, nous utilisons quatre disques de données.

lsblk

Disques de données attachés au système d’exploitation

Créer un système de fichiers par-dessus chaque disque

Cette commande itère la création d’un système de fichiers ext4 sur chaque disque défini sur la partie « in » du cycle « for ».

for disk in c d e f; do echo mkfs.ext4 -F /dev/sd${disk}; done |bash

Création d’un système de fichiers ext4

Recherchez l’identificateur unique universel (UUID) des systèmes de fichiers que vous avez créés récemment, créez un dossier temporaire, ajoutez les entrées correspondantes sur /etc/fstab et montez tous les systèmes de fichiers.

Cette commande effectue également une itération sur chaque disque défini sur la partie « in » du cycle « for » :

for disk in c d e f; do diskuuid="$(blkid -s UUID -o value /dev/sd${disk})"; \
mkdir /tempdata${disk}; \
echo "UUID=${diskuuid} /tempdata${disk} ext4 defaults,nofail 0 0" >> /etc/fstab; \
mount -a; \
done

Vérifier que les disques sont correctement montés

lsblk

Liste des systèmes de fichiers temporaires montés

Vérifiez également que les disques sont configurés :

cat /etc/fstab

Informations de configuration via fstab

Chiffrer les disques de données

PowerShell à l’aide d’une clé de chiffrement principale (KEK) :

$sequenceVersion = [Guid]::NewGuid()
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGNAME `
-VMName ${VMNAME} `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
-DiskEncryptionKeyVaultId $KeyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
-KeyEncryptionKeyVaultId $KeyVaultResourceId `
-VolumeType 'DATA' `
-EncryptFormatAll `
-SequenceVersion $sequenceVersion `
-skipVmBackup;

Azure CLI à l’aide d’une KEK :

az vm encryption enable \
--resource-group ${RGNAME} \
--name ${VMNAME} \
--disk-encryption-keyvault ${KEYVAULTNAME} \
--key-encryption-key ${KEYNAME} \
--key-encryption-keyvault ${KEYVAULTNAME} \
--volume-type "DATA" \
--encrypt-format-all \
-o table

Vérifier l’état du chiffrement

Passez à l’étape suivante uniquement lorsque tous les disques sont chiffrés.

PowerShell :

Get-AzVmDiskEncryptionStatus -ResourceGroupName ${RGNAME} -VMName ${VMNAME}

État du chiffrement dans PowerShell

Azure CLI :

az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table

État du chiffrement dans Azure CLI

Portail :

État du chiffrement dans le portail

Niveau du système d’exploitation :

lsblk

État du chiffrement dans le système d’exploitation

L’extension ajoutera les systèmes de fichiers à /var/lib/azure_disk_encryption_config/azure_crypt_mount (un ancien chiffrement) ou à /etc/crypttab (nouveaux chiffrements).

Notes

Ne modifiez aucun de ces fichiers.

Ce fichier s’occupera de l’activation de ces disques pendant le processus de démarrage afin que LVM ou RAID puisse les utiliser ultérieurement.

Ne vous préoccupez pas des points de montage sur ce fichier. Azure Disk Encryption perdra la capacité de monter les disques comme système de fichiers normal après que nous ayons créé un volume physique ou un appareil RAID sur ces appareils chiffrés. (Cela supprimera le format de système de fichiers que nous avons utilisé pendant le processus de préparation.)

Supprimer les dossiers temporaires et les entrées fstab temporaires

Vous démontez les systèmes de fichiers des disques qui seront utilisés dans le cadre de LVM.

for disk in c d e f; do umount /tempdata${disk}; done

Et supprimez les entrées /etc/fstab :

vi /etc/fstab

Vérifiez que les disques ne sont pas montés et que les entrées sur /etc/fstab ont été supprimées.

lsblk

Vérification du démontage des systèmes de fichiers temporaires

Vérifiez également que les disques sont configurés :

cat /etc/fstab

Vérification de la suppression des entrées fstab temporaires

Étapes pour LVM-on-crypt

Maintenant que les disques sous-jacents sont chiffrés, vous pouvez créer des structures LVM.

Au lieu d’utiliser le nom de l’appareil, utilisez les chemins d’accès /dev/mapper pour chacun des disques afin de créer un volume physique (sur la couche de chiffrement par-dessus le disque, et non sur le disque lui-même).

Configurer LVM par-dessus les couches chiffrées

Créer les volumes physiques

Un avertissement s’affiche pour vous demander si vous souhaitez effacer la signature du système de fichiers. Continuez en entrant y ou utilisez l’écho y, comme indiqué ci-dessous :

echo "y" | pvcreate /dev/mapper/c49ff535-1df9-45ad-9dad-f0846509f052
echo "y" | pvcreate /dev/mapper/6712ad6f-65ce-487b-aa52-462f381611a1
echo "y" | pvcreate /dev/mapper/ea607dfd-c396-48d6-bc54-603cf741bc2a
echo "y" | pvcreate /dev/mapper/4159c60a-a546-455b-985f-92865d51158c

Vérification de la création d’un volume physique

Notes

Les noms /dev/mapper/device doivent ici être remplacés par vos valeurs réelles en fonction de la sortie de lsblk.

Vérifier les informations des volumes physiques

pvs

Informations des volumes physiques

Créer le groupe de volumes

Créez le groupe de volumes en utilisant les mêmes appareils déjà initialisés :

vgcreate vgdata /dev/mapper/

Vérifier les informations du groupe de volumes

vgdisplay -v vgdata
pvs

Informations du groupe de volumes

Créer des volumes logiques

lvcreate -L 10G -n lvdata1 vgdata
lvcreate -L 7G -n lvdata2 vgdata

Vérifier les volumes logiques créés

lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2

Informations des volumes logiques

Créer des systèmes de fichiers par-dessus les structures des volumes logiques

echo "yes" | mkfs.ext4 /dev/vgdata/lvdata1
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata2

Créer les points de montage des nouveaux systèmes de fichiers

mkdir /data0
mkdir /data1

Ajouter les nouveaux systèmes de fichiers à /etc/fstab et les monter

echo "/dev/mapper/vgdata-lvdata1 /data0 ext4 defaults,nofail 0 0" >>/etc/fstab
echo "/dev/mapper/vgdata-lvdata2 /data1 ext4 defaults,nofail 0 0" >>/etc/fstab
mount -a

Vérifier le montage des nouveaux systèmes de fichiers

lsblk -fs
df -h

Capture d’écran montrant une fenêtre de console avec des systèmes de fichiers montés en tant que data0 et data1.

Sur cette variation de lsblk, nous répertorions les appareils qui affichent les dépendances dans l’ordre inverse. Cette option permet d’identifier les appareils regroupés par le volume logique à la place des noms d’appareil /dev/sd[disk] d’origine.

Il est important de s’assurer que l’option nofail est ajoutée aux options de point de montage des volumes LVM créés par-dessus un appareil chiffré par Azure Disk Encryption. Elle empêche que le système d’exploitation se bloque pendant le processus de démarrage (ou en mode de maintenance).

Si vous n’utilisez pas l’option nofail :

  • Le système d’exploitation n’arrive jamais à l’étape où Azure Disk Encryption est lancé et les disques de données sont déverrouillés et montés.
  • Les disques chiffrés seront déverrouillés à la fin du processus de démarrage. Les volumes LVM et les systèmes de fichiers sont automatiquement montés jusqu’à ce qu’Azure Disk Encryption les déverrouille.

Vous pouvez tester le redémarrage de la machine virtuelle et vérifier que les systèmes de fichiers sont également montés automatiquement après le démarrage. Ce processus peut prendre plusieurs minutes en fonction du nombre et de la taille des systèmes de fichiers.

Redémarrer la machine virtuelle et vérifier après le redémarrage

shutdown -r now
lsblk
df -h

Étapes pour RAID-on-crypt

Maintenant que les disques sous-jacents sont chiffrés, vous pouvez continuer en créant les structures RAID. Le processus est identique à celui pour LVM, mais au lieu d’utiliser le nom de l’appareil, utilisez les chemins d’accès /dev/mapper pour chaque disque.

Configurer RAID par-dessus la couche chiffrée des disques

mdadm --create /dev/md10 \
--level 0 \
--raid-devices=4 \
/dev/mapper/c49ff535-1df9-45ad-9dad-f0846509f052 \
/dev/mapper/6712ad6f-65ce-487b-aa52-462f381611a1 \
/dev/mapper/ea607dfd-c396-48d6-bc54-603cf741bc2a \
/dev/mapper/4159c60a-a546-455b-985f-92865d51158c

Informations du RAID configuré via la commande mdadm

Notes

Les noms /dev/mapper/device doivent ici être remplacés par vos valeurs réelles en fonction de la sortie de lsblk.

Vérifier/surveiller la création de RAID

watch -n1 cat /proc/mdstat
mdadm --examine /dev/mapper/[]
mdadm --detail /dev/md10

État de RAID

Créer un système de fichiers par-dessus le nouvel appareil RAID

mkfs.ext4 /dev/md10

Créez un nouveau point de montage pour le système de fichiers, ajoutez le nouveau système de fichiers à /etc/fstab et montez-le :

Notes

Ce cycle itère sur un appareil uniquement pour cet exemple particulier, est créé de cette manière pour être utilisé pour plusieurs appareils MD si nécessaire.

for device in md10; do diskuuid="$(blkid -s UUID -o value /dev/${device})"; \
mkdir /raiddata; \
echo "UUID=${diskuuid} /raiddata ext4 defaults,nofail 0 0" >> /etc/fstab; \
mount -a; \
done

Vérifiez que le nouveau système de fichiers est monté :

lsblk -fs
df -h

Capture d’écran montrant une fenêtre de console avec un système de fichiers monté en tant que raiddata.

Il est important de s’assurer que l’option nofail est ajoutée aux options de point de montage des volumes RAIS créés par-dessus un appareil chiffré par Azure Disk Encryption. Elle empêche que le système d’exploitation se bloque pendant le processus de démarrage (ou en mode de maintenance).

Si vous n’utilisez pas l’option nofail :

  • Le système d’exploitation n’arrive jamais à l’étape où Azure Disk Encryption est lancé et les disques de données sont déverrouillés et montés.
  • Les disques chiffrés seront déverrouillés à la fin du processus de démarrage. Les volumes RAID et les systèmes de fichiers sont automatiquement montés jusqu’à ce qu’Azure Disk Encryption les déverrouille.

Vous pouvez tester le redémarrage de la machine virtuelle et vérifier que les systèmes de fichiers sont également montés automatiquement après le démarrage. Ce processus peut prendre plusieurs minutes en fonction du nombre et de la taille des systèmes de fichiers.

shutdown -r now

Et quand vous pouvez vous connecter :

lsblk
df -h

Étapes suivantes