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.
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
Azure CLI:
az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table
Portal:
Besturingssysteem:
lsblk
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
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
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
Controleer ook of de schijven zijn geconfigureerd:
cat /etc/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}
Azure CLI:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Portal:
Niveau van besturingssysteem:
lsblk
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
En controleer of de schijven zijn geconfigureerd:
cat /etc/fstab
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
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
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
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
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
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
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
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
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