Dela via


Konfigurera LVM och RAID på krypterade enheter

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️

Den här artikeln är en stegvis process för hur du utför logisk volymhantering (LVM) och RAID på krypterade enheter. Processen gäller för följande miljöer:

  • Linux-distributioner
    • RHEL 7.6+
    • Ubuntu 18.04+
    • SUSE 12+
  • Azure Disk Encryption-tillägg med enkel passering
  • Azure Disk Encryption-tillägg med dubbla pass

Scenarier

Procedurerna i den här artikeln stöder följande scenarier:

  • Konfigurera LVM ovanpå krypterade enheter (LVM-on-crypt)
  • Konfigurera RAID ovanpå krypterade enheter (RAID-on-crypt)

När den underliggande enheten eller enheterna har krypterats kan du skapa LVM- eller RAID-strukturerna ovanpå det krypterade lagret.

De fysiska volymerna (PV:er) skapas ovanpå det krypterade lagret. De fysiska volymerna används för att skapa volymgruppen. Du skapar volymerna och lägger till de nödvändiga posterna på fliken /etc/fstab.

Diagram över skikten i LVM-strukturer

På liknande sätt skapas RAID-enheten ovanpå det krypterade lagret på diskarna. Ett filsystem skapas ovanpå RAID-enheten och läggs till i /etc/fstab som en vanlig enhet.

Att tänka på

Vi rekommenderar att du använder LVM-on-crypt. RAID är ett alternativ när LVM inte kan användas på grund av specifika program- eller miljöbegränsningar.

Du använder alternativet EncryptFormatAll . Mer information om det här alternativet finns i Använda funktionen EncryptFormatAll för datadiskar på virtuella Linux-datorer.

Även om du kan använda den här metoden när du även krypterar operativsystemet krypterar vi bara dataenheter här.

Procedurerna förutsätter att du redan har granskat kraven i Azure Disk Encryption-scenarier på virtuella Linux-datorer och i Snabbstart: Skapa och kryptera en virtuell Linux-dator med Azure CLI.

Azure Disk Encryption-versionen med dubbla pass är på en utfasningssökväg och bör inte längre användas för nya krypteringar.

Allmänna steg

När du använder "on-crypt"-konfigurationerna använder du den process som beskrivs i följande procedurer.

Kommentar

Vi använder variabler i hela artikeln. Ersätt värdena i enlighet med detta.

Distribuera en virtuell dator

Följande kommandon är valfria, men vi rekommenderar att du tillämpar dem på en nyligen distribuerad virtuell dator (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

Ansluta diskar till den virtuella datorn

Upprepa följande kommandon för $N antalet nya diskar som du vill ansluta till den virtuella datorn.

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

Kontrollera att diskarna är anslutna till den virtuella datorn

PowerShell:

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

Lista över anslutna diskar i PowerShell

Azure CLI:

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

Lista över anslutna diskar i Azure CLI

Portal:

Lista över anslutna diskar i portalen

Operativsystem:

lsblk

Lista över anslutna diskar i operativsystemet

Konfigurera diskarna som ska krypteras

Den här konfigurationen görs på operativsystemnivå. Motsvarande diskar konfigureras för en traditionell kryptering via Azure Disk Encryption:

  • Filsystem skapas ovanpå diskarna.
  • Tillfälliga monteringspunkter skapas för att montera filsystemen.
  • Filsystem konfigureras på /etc/fstab så att de monteras vid start.

Kontrollera enhetsbrevet som tilldelats till de nya diskarna. I det här exemplet använder vi fyra datadiskar.

lsblk

Datadiskar som är anslutna till operativsystemet

Skapa ett filsystem ovanpå varje disk

Det här kommandot itererar skapandet av ett ext4-filsystem på varje disk som definierats i "i"-delen av "for"-cykeln.

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

Skapa ett ext4-filsystem

Hitta den universellt unika identifieraren (UUID) för de filsystem som du nyligen skapade, skapa en tillfällig mapp, lägg till motsvarande poster på /etc/fstab och montera alla filsystem.

Det här kommandot itererar också på varje disk som definierats i "i"-delen av "for"-cykeln:

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

Kontrollera att diskarna är korrekt monterade

lsblk

Lista över monterade temporära filsystem

Kontrollera också att diskarna är konfigurerade:

cat /etc/fstab

Konfigurationsinformation via fstab

Kryptera datadiskarna

PowerShell med hjälp av en nyckelkrypteringsnyckel (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 med hjälp av en 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

Verifiera krypteringsstatusen

Fortsätt bara till nästa steg när alla diskar är krypterade.

PowerShell:

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

Krypteringsstatus i PowerShell

Azure CLI:

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

Krypteringsstatus i Azure CLI

Portal:

Krypteringsstatus i portalen

OS-nivå:

lsblk

Krypteringsstatus i operativsystemet

Tillägget lägger till filsystemen i /var/lib/azure_disk_encryption_config/azure_crypt_mount (en gammal kryptering) eller till /etc/crypttab (nya krypteringar).

Kommentar

Ändra inte någon av dessa filer.

Den här filen tar hand om aktiveringen av dessa diskar under startprocessen så att LVM eller RAID kan använda dem senare.

Oroa dig inte för monteringspunkterna i den här filen. Azure Disk Encryption förlorar möjligheten att få diskarna monterade som ett vanligt filsystem när vi har skapat en fysisk volym eller en RAID-enhet ovanpå de krypterade enheterna. (Detta tar bort filsystemformatet som vi använde under förberedelseprocessen.)

Ta bort de tillfälliga mapparna och de tillfälliga fstab-posterna

Du demonterar filsystemen på de diskar som ska användas som en del av LVM.

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

Och ta bort posterna /etc/fstab:

vi /etc/fstab

Kontrollera att diskarna inte är monterade och att posterna på /etc/fstab har tagits bort

lsblk

Verifiering av att tillfälliga filsystem är omonterade

Kontrollera att diskarna är konfigurerade:

cat /etc/fstab

Verifiering av att tillfälliga fstab-poster tas bort

Steg för LVM-on-crypt

Nu när de underliggande diskarna är krypterade kan du skapa LVM-strukturerna.

I stället för att använda enhetsnamnet använder du sökvägarna /dev/mapper för var och en av diskarna för att skapa en fysisk volym (på kryptlagret ovanpå disken, inte på själva disken).

Konfigurera LVM ovanpå de krypterade lagren

Skapa de fysiska volymerna

Du får en varning som frågar om det är OK att radera filsystemets signatur. Fortsätt genom att ange y eller använd eko "y" enligt följande:

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

Verifiering av att en fysisk volym har skapats

Kommentar

Namn på /dev/mapper/enhet här måste ersättas för dina faktiska värden baserat på utdata från lsblk.

Verifiera informationen för fysiska volymer

pvs

Information om fysiska volymer

Skapa volymgruppen

Skapa volymgruppen med samma enheter som redan har initierats:

vgcreate vgdata /dev/mapper/

Kontrollera informationen för volymgruppen

vgdisplay -v vgdata
pvs

Information för volymgruppen

Skapa logiska volymer

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

Kontrollera de skapade logiska volymerna

lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2

Information om logiska volymer

Skapa filsystem ovanpå strukturerna för logiska volymer

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

Skapa monteringspunkterna för de nya filsystemen

mkdir /data0
mkdir /data1

Lägg till de nya filsystemen i /etc/fstab och montera dem

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

Kontrollera att de nya filsystemen är monterade

lsblk -fs
df -h

Skärmbild som visar ett konsolfönster med filsystem monterade som data0 och data1.

På den här varianten av lsblk listar vi enheterna som visar beroendena i omvänd ordning. Det här alternativet hjälper till att identifiera de enheter som grupperas efter den logiska volymen i stället för de ursprungliga enhetsnamnen /dev/sd[disk].

Det är viktigt att se till att nofail-alternativet läggs till i monteringspunktsalternativen för de LVM-volymer som skapats ovanpå en enhet som krypterats via Azure Disk Encryption. Det förhindrar att operativsystemet fastnar under startprocessen (eller i underhållsläge).

Om du inte använder nofail-alternativet :

  • Operativsystemet kommer aldrig in i fasen där Azure Disk Encryption startas och datadiskarna låss upp och monteras.
  • De krypterade diskarna låss upp i slutet av startprocessen. LVM-volymerna och filsystemen monteras automatiskt tills Azure Disk Encryption låser upp dem.

Du kan testa omstarten av den virtuella datorn och verifiera att filsystemen också monteras automatiskt efter starttiden. Den här processen kan ta flera minuter, beroende på antalet och storleken på filsystemen.

Starta om den virtuella datorn och verifiera efter omstart

shutdown -r now
lsblk
df -h

Steg för RAID-on-crypt

Nu när de underliggande diskarna är krypterade kan du fortsätta att skapa RAID-strukturerna. Processen är densamma som för LVM, men i stället för att använda enhetsnamnet använder du sökvägarna /dev/mapper för varje disk.

Konfigurera RAID ovanpå det krypterade lagret på diskarna

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

Information för konfigurerad RAID via mdadm-kommandot

Kommentar

Namnen på /dev/mapper/device här måste ersättas med dina faktiska värden, baserat på utdata från lsblk.

Kontrollera/övervaka RAID-skapande

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

Status för RAID

Skapa ett filsystem ovanpå den nya RAID-enheten

mkfs.ext4 /dev/md10

Skapa en ny monteringspunkt för filsystemet, lägg till det nya filsystemet i /etc/fstab och montera det:

Kommentar

Den här cykeln itererar endast på en enhet för det här exemplet, skapas på det här sättet för att användas för flera md-enheter om det behövs.

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

Kontrollera att det nya filsystemet är monterat:

lsblk -fs
df -h

Skärmbild som visar ett konsolfönster med ett filsystem monterat som raiddata.

Det är viktigt att se till att nofail-alternativet läggs till i monteringspunktsalternativen för RAID-volymerna som skapats ovanpå en enhet som krypterats via Azure Disk Encryption. Det förhindrar att operativsystemet fastnar under startprocessen (eller i underhållsläge).

Om du inte använder nofail-alternativet :

  • Operativsystemet kommer aldrig in i fasen där Azure Disk Encryption startas och datadiskarna låss upp och monteras.
  • De krypterade diskarna låss upp i slutet av startprocessen. RAID-volymerna och filsystemen monteras automatiskt tills Azure Disk Encryption låser upp dem.

Du kan testa omstarten av den virtuella datorn och verifiera att filsystemen också monteras automatiskt efter starttiden. Den här processen kan ta flera minuter, beroende på antalet och storleken på filsystemen.

shutdown -r now

Och när du kan logga in:

lsblk
df -h

Nästa steg