LVM en RAID configureren op versleutelde apparaten

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

Dit artikel is een stapsgewijs proces voor het uitvoeren van Logical Volume Management (LVM) en RAID op versleutelde apparaten. Het proces is van toepassing op de volgende omgevingen:

  • Linux-distributies
    • RHEL 7.6+
    • Ubuntu 18.04+
    • SUSE 12+
  • Azure Disk Encryption single-pass-extensie
  • Azure Disk Encryption dual-pass-extensie

Scenario's

De procedures in dit artikel ondersteunen de volgende scenario's:

  • LVM configureren boven op versleutelde apparaten (LVM-on-crypt)
  • RAID configureren boven op versleutelde apparaten (RAID-on-crypt)

Nadat het onderliggende apparaat of de onderliggende apparaten zijn versleuteld, kunt u de LVM- of RAID-structuren boven op die versleutelde laag maken.

De fysieke volumes (PV's) worden boven op de versleutelde laag gemaakt. De fysieke volumes worden gebruikt om de volumegroep te maken. U maakt de volumes en voegt de vereiste vermeldingen toe aan /etc/fstab.

Diagram van de lagen van LVM-structuren

Op een vergelijkbare manier wordt het RAID-apparaat gemaakt boven op de versleutelde laag op de schijven. Er wordt een bestandssysteem gemaakt boven op het RAID-apparaat en toegevoegd aan /etc/fstab als een gewoon apparaat.

Overwegingen

We raden u aan LVM-on-crypt te gebruiken. RAID is een optie wanneer LVM niet kan worden gebruikt vanwege specifieke toepassings- of omgevingsbeperkingen.

U gebruikt de optie EncryptFormatAll . Zie De functie EncryptFormatAll gebruiken voor gegevensschijven op Linux-VM's voor meer informatie over deze optie.

Hoewel u deze methode kunt gebruiken wanneer u ook het besturingssysteem versleutelt, versleutelen we hier alleen gegevensstations.

In de procedures wordt ervan uitgegaan dat u de vereisten al hebt gecontroleerd in Azure Disk Encryption-scenario's op Linux-VM's en in Quickstart: Een Linux-VM maken en versleutelen met de Azure CLI.

De dual-pass-versie van Azure Disk Encryption bevindt zich op een afschaffingspad en mag niet meer worden gebruikt voor nieuwe versleutelingsbewerkingen.

Algemene stappen

Wanneer u de configuraties 'on-crypt' gebruikt, gebruikt u het proces dat in de volgende procedures wordt beschreven.

Notitie

In het hele artikel worden variabelen gebruikt. Vervang de waarden dienovereenkomstig.

Een virtuele machine implementeren

De volgende opdrachten zijn optioneel, maar we raden u aan deze toe te passen op een nieuw geïmplementeerde virtuele machine (VM).

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

Schijven koppelen aan de VM

Herhaal de volgende opdrachten voor $N het aantal nieuwe schijven dat u aan de virtuele machine wilt koppelen.

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

Controleer of de schijven zijn gekoppeld aan de virtuele machine

PowerShell:

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

Lijst met gekoppelde schijven in PowerShell

Azure CLI:

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

Lijst met gekoppelde schijven in de Azure CLI

Portal:

Lijst met gekoppelde schijven in de portal

Besturingssysteem:

lsblk

Lijst met gekoppelde schijven in het besturingssysteem

De schijven configureren die moeten worden versleuteld

Deze configuratie wordt uitgevoerd op het niveau van het besturingssysteem. De bijbehorende schijven zijn geconfigureerd voor een traditionele versleuteling via Azure Disk Encryption:

  • Bestandssystemen worden boven op de schijven gemaakt.
  • Tijdelijke koppelpunten worden gemaakt om de bestandssystemen te koppelen.
  • Bestandssystemen zijn geconfigureerd op /etc/fstab om te worden gekoppeld tijdens het opstarten.

Controleer de apparaatbrief die is toegewezen aan de nieuwe schijven. In dit voorbeeld gebruiken we vier gegevensschijven.

lsblk

Gegevensschijven die zijn gekoppeld aan het besturingssysteem

Een bestandssysteem maken op elke schijf

Met deze opdracht wordt het maken van een ext4-bestandssysteem herhaald op elke schijf die is gedefinieerd in het 'in'-gedeelte van de 'for'-cyclus.

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

Een ext4-bestandssysteem maken

Zoek de universally unique identifier (UUID) van de bestandssystemen die u onlangs hebt gemaakt, maak een tijdelijke map, voeg de bijbehorende vermeldingen toe op /etc/fstab en koppel alle bestandssystemen.

Met deze opdracht wordt ook herhaald op elke schijf die is gedefinieerd in het 'in'-gedeelte van de 'for'-cyclus:

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

Controleer of de schijven correct zijn gekoppeld

lsblk

Lijst met gekoppelde tijdelijke bestandssystemen

Controleer ook of de schijven zijn geconfigureerd:

cat /etc/fstab

Configuratiegegevens via fstab

De gegevensschijven versleutelen

PowerShell met behulp van een sleutelversleutelingssleutel (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 met behulp van een 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

De versleutelingsstatus controleren

Ga alleen door naar de volgende stap wanneer alle schijven zijn versleuteld.

PowerShell:

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

Versleutelingsstatus in PowerShell

Azure CLI:

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

Versleutelingsstatus in de Azure CLI

Portal:

Versleutelingsstatus in de portal

Niveau van besturingssysteem:

lsblk

Versleutelingsstatus in het besturingssysteem

Met de extensie worden de bestandssystemen toegevoegd aan /var/lib/azure_disk_encryption_config/azure_crypt_mount (een oude versleuteling) of aan /etc/crypttab (nieuwe versleuteling).

Notitie

Wijzig deze bestanden niet.

Dit bestand zorgt ervoor dat deze schijven tijdens het opstartproces worden geactiveerd, zodat LVM of RAID ze later kan gebruiken.

U hoeft zich geen zorgen te maken over de koppelpunten in dit bestand. Azure Disk Encryption verliest de mogelijkheid om de schijven te koppelen als een normaal bestandssysteem nadat we een fysiek volume of een RAID-apparaat hebben gemaakt boven op deze versleutelde apparaten. (Hiermee wordt de indeling van het bestandssysteem verwijderd die we tijdens het voorbereidingsproces hebben gebruikt.)

De tijdelijke mappen en tijdelijke fstab-vermeldingen verwijderen

U ontkoppelt de bestandssystemen op de schijven die als onderdeel van LVM worden gebruikt.

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

En verwijder de vermeldingen /etc/fstab:

vi /etc/fstab

Controleer of de schijven niet zijn gekoppeld en of de vermeldingen op /etc/fstab zijn verwijderd

lsblk

Verificatie dat tijdelijke bestandssystemen ontkoppeld zijn

En controleer of de schijven zijn geconfigureerd:

cat /etc/fstab

Verificatie dat tijdelijke fstab-vermeldingen zijn verwijderd

Stappen voor LVM-on-crypt

Nu de onderliggende schijven zijn versleuteld, kunt u de LVM-structuren maken.

Gebruik in plaats van de apparaatnaam de paden /dev/mapper voor elk van de schijven om een fysiek volume te maken (op de crypt-laag boven op de schijf, niet op de schijf zelf).

LVM configureren boven op de versleutelde lagen

De fysieke volumes maken

U krijgt een waarschuwing met de vraag of u de handtekening van het bestandssysteem kunt wissen. Ga verder door y in te voeren of gebruik echo 'y' zoals wordt weergegeven:

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

Verificatie dat er een fysiek volume is gemaakt

Notitie

De namen van /dev/mapper/device hier moeten worden vervangen voor uw werkelijke waarden op basis van de uitvoer van lsblk.

De gegevens voor fysieke volumes controleren

pvs

Informatie voor fysieke volumes

De volumegroep maken

Maak de volumegroep met dezelfde apparaten die al zijn geïnitialiseerd:

vgcreate vgdata /dev/mapper/

De informatie voor de volumegroep controleren

vgdisplay -v vgdata
pvs

Informatie voor de volumegroep

Logische volumes maken

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

De gemaakte logische volumes controleren

lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2

Informatie voor logische volumes

Bestandssystemen maken boven op de structuren voor logische volumes

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

De koppelpunten voor de nieuwe bestandssystemen maken

mkdir /data0
mkdir /data1

Voeg de nieuwe bestandssystemen toe aan /etc/fstab en koppel ze

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

Controleer of de nieuwe bestandssystemen zijn gekoppeld

lsblk -fs
df -h

Schermopname van een consolevenster met bestandssystemen die zijn gekoppeld als gegevens0 en gegevens1.

In deze variant van lsblk vermelden we de apparaten met de afhankelijkheden in omgekeerde volgorde. Met deze optie kunt u de apparaten identificeren die zijn gegroepeerd op het logische volume in plaats van de oorspronkelijke apparaatnamen /dev/sd[schijf].

Het is belangrijk om ervoor te zorgen dat de optie nofail wordt toegevoegd aan de opties voor koppelpunten van de LVM-volumes die zijn gemaakt boven op een apparaat dat is versleuteld via Azure Disk Encryption. Hiermee voorkomt u dat het besturingssysteem vastloopt tijdens het opstartproces (of in de onderhoudsmodus).

Als u de nofail-optie niet gebruikt:

  • Het besturingssysteem komt nooit in de fase waarin Azure Disk Encryption wordt gestart en de gegevensschijven worden ontgrendeld en gekoppeld.
  • De versleutelde schijven worden ontgrendeld aan het einde van het opstartproces. De LVM-volumes en -bestandssystemen worden automatisch gekoppeld totdat Azure Disk Encryption ze ontgrendelt.

U kunt het opnieuw opstarten van de VM testen en controleren of de bestandssystemen ook automatisch worden gekoppeld na de opstarttijd. Dit proces kan enkele minuten duren, afhankelijk van het aantal en de grootte van bestandssystemen.

Start de VM opnieuw op en controleer na het opnieuw opstarten

shutdown -r now
lsblk
df -h

Stappen voor RAID-on-crypt

Nu de onderliggende schijven zijn versleuteld, kunt u doorgaan met het maken van de RAID-structuren. Het proces is hetzelfde als het proces voor LVM, maar in plaats van de apparaatnaam te gebruiken, gebruikt u de paden /dev/mapper voor elke schijf.

RAID configureren boven op de versleutelde laag van de schijven

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

Informatie voor geconfigureerde RAID via de opdracht mdadm

Notitie

De namen van /dev/mapper/device hier moeten worden vervangen door uw werkelijke waarden, op basis van de uitvoer van lsblk.

RAID-creatie controleren/bewaken

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

Status van RAID

Een bestandssysteem maken boven op het nieuwe RAID-apparaat

mkfs.ext4 /dev/md10

Maak een nieuw koppelpunt voor het bestandssysteem, voeg het nieuwe bestandssysteem toe aan /etc/fstab en koppel het:

Notitie

Deze cyclus wordt slechts op één apparaat herhaald voor dit specifieke voorbeeld. Deze cyclus is zo gebouwd dat deze zo nodig kan worden gebruikt voor meerdere md-apparaten.

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

Controleer of het nieuwe bestandssysteem is gekoppeld:

lsblk -fs
df -h

Schermopname van een consolevenster met een bestandssysteem dat is gekoppeld als raiddata.

Het is belangrijk om ervoor te zorgen dat de nofail-optie wordt toegevoegd aan de opties voor koppelpunten van de RAID-volumes die zijn gemaakt op basis van een apparaat dat is versleuteld via Azure Disk Encryption. Hiermee voorkomt u dat het besturingssysteem vastloopt tijdens het opstartproces (of in de onderhoudsmodus).

Als u de nofail-optie niet gebruikt:

  • Het besturingssysteem komt nooit in de fase waarin Azure Disk Encryption wordt gestart en de gegevensschijven worden ontgrendeld en gekoppeld.
  • De versleutelde schijven worden ontgrendeld aan het einde van het opstartproces. De RAID-volumes en -bestandssystemen worden automatisch gekoppeld totdat Azure Disk Encryption ze ontgrendelt.

U kunt het opnieuw opstarten van de VM testen en controleren of de bestandssystemen ook automatisch worden gekoppeld na de opstarttijd. Dit proces kan enkele minuten duren, afhankelijk van het aantal en de grootte van bestandssystemen.

shutdown -r now

En wanneer u zich kunt aanmelden:

lsblk
df -h

Volgende stappen