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.
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
Azure CLI :
az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table
Portail :
Système d’exploitation :
lsblk
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
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
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
Vérifiez également que les disques sont configurés :
cat /etc/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}
Azure CLI :
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Portail :
Niveau du système d’exploitation :
lsblk
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érifiez également que les disques sont configurés :
cat /etc/fstab
É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
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
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
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
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
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
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
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
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