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.
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
Azure CLI:
az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table
Portal:
Operativsystem:
lsblk
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
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
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
Kontrollera också att diskarna är konfigurerade:
cat /etc/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}
Azure CLI:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Portal:
OS-nivå:
lsblk
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
Kontrollera att diskarna är konfigurerade:
cat /etc/fstab
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
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
Skapa volymgruppen
Skapa volymgruppen med samma enheter som redan har initierats:
vgcreate vgdata /dev/mapper/
Kontrollera informationen för volymgruppen
vgdisplay -v vgdata
pvs
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
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
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
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
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
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