Delen via


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-extensie met één wachtwoord
  • Azure Disk Encryption-extensie voor dubbele pass

Scenario's

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

  • LVM configureren boven op versleutelde apparaten (LVM-on-crypt)
  • RAID configureren 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 (VS'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 op /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 normaal apparaat.

Overwegingen

U wordt aangeraden 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 in Azure Disk Encryption-scenario's op Linux-VM's al hebt gecontroleerd en in quickstart: Een Virtuele Linux-machine maken en versleutelen met de Azure CLI.

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

Algemene stappen

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

Notitie

We gebruiken variabelen in het hele artikel. 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 virtuele machine

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 besturingssysteemniveau. 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 worden geconfigureerd op /etc/fstab die tijdens het opstarten moeten worden gekoppeld.

Controleer de apparaatletter 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 gedeelte 'in' 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 UUID (Universally Unique Identifier) 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 gedeelte 'in' 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 juist zijn gekoppeld

lsblk

Lijst met gekoppelde tijdelijke bestandssystemen

Controleer ook of de schijven zijn geconfigureerd:

cat /etc/fstab

Configuratie-informatie 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 door naar de volgende stap alleen 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

Besturingssysteemniveau:

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 geen van deze bestanden.

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

Maak u geen zorgen 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 boven op die versleutelde apparaten hebben gemaakt. (Hiermee verwijdert u de bestandssysteemindeling die we tijdens het voorbereidingsproces hebben gebruikt.)

De tijdelijke mappen en tijdelijke fstab-vermeldingen verwijderen

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

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

En verwijder de /etc/fstab-vermeldingen:

vi /etc/fstab

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

lsblk

Verificatie dat tijdelijke bestandssystemen niet zijn gekoppeld

Controleer of de schijven zijn geconfigureerd:

cat /etc/fstab

Verificatie dat tijdelijke fstab-vermeldingen worden verwijderd

Stappen voor LVM-on-crypt

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

In plaats van de apparaatnaam te gebruiken, gebruikt u de paden /dev/mapper voor elk van de schijven om een fysiek volume te maken (op de cryptlaag 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 het ok is om de handtekening van het bestandssysteem te wissen. Ga door met het invoeren van y 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/apparaten moeten hier 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 behulp van dezelfde apparaten die al zijn geïnitialiseerd:

vgcreate vgdata /dev/mapper/

Controleer de informatie voor de volumegroep

vgdisplay -v vgdata
pvs

Informatie voor de volumegroep

Logische volumes maken

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

Controleer de gemaakte logische volumes

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 variatie van lsblk geven we de apparaten weer 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 /dev/sd[disk] apparaatnamen.

Het is belangrijk om ervoor te zorgen dat de nofail-optie wordt toegevoegd aan de koppelpuntopties 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 deze ontgrendelt.

U kunt het opnieuw opstarten van de virtuele machine 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 de RAID-structuren blijven maken. Het proces is hetzelfde als het proces voor LVM, maar gebruik in plaats van de apparaatnaam 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 mdadm-opdracht

Notitie

De namen /dev/mapper/device moeten hier 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 doorloopt slechts één apparaat voor dit specifieke voorbeeld. Deze manier wordt zo gebouwd dat deze kan worden gebruikt voor meerdere md-apparaten, indien nodig.

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 koppelpuntopties van de RAID-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 RAID-volumes en -bestandssystemen worden automatisch gekoppeld totdat Azure Disk Encryption deze ontgrendelt.

U kunt het opnieuw opstarten van de virtuele machine 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