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.
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
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 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
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
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
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 door naar de volgende stap alleen 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:
Besturingssysteemniveau:
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 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
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.
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
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
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
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
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 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
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
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
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