Konfigurieren von LVM und RAID auf verschlüsselten Geräten
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
In diesem Artikel wird schrittweise erläutert, wie die logische Volumeverwaltung (Logical Volume Management, LVM) und RAID auf verschlüsselten Geräten durchführt werden. Der Vorgang gilt für die folgenden Umgebungen:
- Linux-Verteilungen
- RHEL 7.6+
- Ubuntu 18.04+
- SUSE 12+
- Azure Disk Encryption – Erweiterung in Einzeldurchlauf
- Azure Disk Encryption – Erweiterung in zwei Durchläufen
Szenarien
Die Verfahren in diesem Artikel unterstützen die folgenden Szenarien:
- Konfigurieren von LVM auf verschlüsselten Geräten (LVM-on-Crypt)
- Konfigurieren von RAID auf verschlüsselten Geräten (RAID-on-Crypt)
Nachdem die zugrunde liegenden Geräte verschlüsselt wurden, können Sie die LVM- oder RAID-Strukturen basierend auf dieser verschlüsselten Ebene erstellen.
Die physischen Volumes werden auf der verschlüsselten Ebene erstellt. Mithilfe der physischen Volumes wird die Volumegruppe erstellt. Sie erstellen die Volumes und fügen die erforderlichen Einträge in „/etc/fstab“ hinzu.
Auf ähnliche Weise wird das RAID-Gerät basierend auf der verschlüsselten Ebene auf den Datenträgern erstellt. Ein Dateisystem wird auf dem RAID-Gerät erstellt und in „/etc/fstab“ als reguläres Gerät hinzugefügt.
Überlegungen
Wir empfehlen die Verwendung von LVM-on-Crypt. RAID ist eine Option, wenn LVM aufgrund bestimmter Anwendungs- oder Umgebungsbeschränkungen nicht verwendet werden kann.
Sie werden die Option EncryptFormatAll verwenden. Weitere Informationen zu dieser Option finden Sie unter Verwenden des Features EncryptFormatAll für Datenträger auf virtuellen Linux-Computern.
Obwohl Sie diese Methode auch verwenden können, wenn Sie das Betriebssystem verschlüsseln, werden hier lediglich die Datenträger mit den Daten verschlüsselt.
Die Verfahren gehen davon aus, dass Sie die Voraussetzungen bereits in Azure Disk Encryption-Szenarien auf virtuellen Linux-Computern und in Schnellstart: Erstellen und Verschlüsseln eines virtuellen Linux-Computers mit der Azure CLI überprüft haben:
Die Version von Azure Disk Encryption mit zwei Durchläufen wird bald eingestellt und sollte bei neuen Verschlüsselungen nicht mehr verwendet werden.
Allgemeine Schritte
Wenn Sie die „on-Crypt“-Konfigurationen verwenden, verwenden Sie den in den folgenden Verfahren beschriebenen Prozess.
Hinweis
Im gesamten Artikel werden Variablen verwendet. Ersetzen Sie die Werte entsprechend.
Bereitstellen einer VM
Die folgenden Befehle sind optional, es wird jedoch empfohlen, sie auf einen neu bereitgestellten virtuellen Computer (VM) anzuwenden.
Mit 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
Anfügen von Datenträgern an die VM
Wiederholen Sie die folgenden Befehle für die $N
-Anzahl neuer Datenträger, die Sie an den virtuellen Computer anfügen möchten.
Mit 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
Vergewissern Sie sich, dass die Datenträger an die VM angefügt wurden
Mit 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:
Betriebssystem:
lsblk
Konfigurieren der zu verschlüsselnden Datenträger
Diese Konfiguration erfolgt auf Betriebssystemebene. Die entsprechenden Datenträger werden über Azure Disk Encryption für eine herkömmliche Verschlüsselung konfiguriert:
- Dateisysteme werden auf den Datenträgern erstellt.
- Temporäre Bereitstellungspunkte zum Einbinden der Dateisysteme werden erstellt.
- Dateisysteme werden in „/etc/fstab“ so konfiguriert, dass sie beim Start eingebunden werden.
Überprüfen Sie den Gerätebuchstaben, der den neuen Datenträgern zugewiesen ist. In diesem Beispiel werden vier Datenträger verwendet.
lsblk
Erstellen eines Dateisystems auf den einzelnen Datenträgern
Dieser Befehl erstellt iterativ ein ext4-Dateisystem auf jedem Datenträger, der im Abschnitt „in“ der „for“-Schleife definiert ist.
for disk in c d e f; do echo mkfs.ext4 -F /dev/sd${disk}; done |bash
Finden Sie den universell eindeutigen Bezeichner (UUID) der Dateisysteme, die Sie kürzlich erstellt haben, erstellen Sie einen temporären Ordner, fügen Sie die entsprechenden Einträge in „/etc/fstab“ hinzu, und binden Sie alle Dateisysteme ein.
Dieser Befehl wird ebenfalls iterativ auf jedem Datenträger ausgeführt, der im Abschnitt „in“ der „for“-Schleife definiert ist:
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
Überprüfen der ordnungsgemäßen Einbindung der Datenträger
lsblk
Überprüfen Sie auch, ob die Datenträger konfiguriert sind:
cat /etc/fstab
Verschlüsseln der Datenträger
PowerShell mit einem Schlüssel für die Schlüsselverschlüsselung (Key Encryption Key, 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 mit einem 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
Überprüfen des Verschlüsselungsstatus
Fahren Sie mit dem nächsten Schritt erst dann fort, wenn alle Datenträger verschlüsselt sind.
Mit PowerShell:
Get-AzVmDiskEncryptionStatus -ResourceGroupName ${RGNAME} -VMName ${VMNAME}
Azure CLI:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Portal:
Betriebssystemebene:
lsblk
Die Erweiterung fügt die Dateisysteme „/var/lib/azure_disk_encryption_config/azure_crypt_mount“ (alte Verschlüsselung) oder „/etc/crypttab“ (neue Verschlüsselungen) hinzu.
Hinweis
Ändern Sie keine dieser Dateien.
Diese Datei übernimmt die Aktivierung dieser Datenträger während des Startvorgangs, damit sie später von LVM oder RAID verwendet werden können.
Machen Sie sich keine Gedanken über die Bereitstellungspunkte in dieser Datei. Azure Disk Encryption verliert die Fähigkeit, die Datenträger als normales Dateisystem einzubinden, nachdem wir einen physischen Datenträger oder ein RAID-Gerät auf diesen verschlüsselten Geräten erstellt haben. (Dadurch wird das Dateisystemformat, das wir während des Vorbereitungsprozesses verwendet haben, entfernt).
Entfernen der temporären Ordner und temporären fstab-Einträge
Sie heben die Einbindung der Dateisysteme auf den Datenträgern auf, die als Teil von LVM verwendet werden sollen.
for disk in c d e f; do umount /tempdata${disk}; done
Entfernen Sie außerdem die Einträge in „/etc/fstab“:
vi /etc/fstab
Sicherstellen, dass die Datenträger nicht eingebunden sind und die Einträge aus „/etc/fstab“ entfernt wurden
lsblk
Überprüfen Sie auch, ob die Datenträger konfiguriert sind:
cat /etc/fstab
Schritte für LVM-on-Crypt
Nachdem die zugrunde liegenden Datenträger nun verschlüsselt wurden, können Sie die LVM-Strukturen erstellen.
Verwenden Sie anstelle des Gerätenamens die Pfade in „/dev/mapper“ für die einzelnen Datenträger, um ein physisches Volume zu erstellen (auf der verschlüsselten Ebene des Datenträgers, nicht auf dem Datenträger selbst).
Konfigurieren von LVM auf den verschlüsselten Ebenen
Erstellen der physischen Volumes
Sie erhalten eine Warnung mit der Frage, ob die Dateisystemsignatur entfernt werden kann. Setzen Sie den Vorgang wie dargestellt durch die Eingabe von y oder echo „y“ fort:
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
Hinweis
Die Gerätenamen von „/dev/mapper/“ müssen durch Ihre tatsächlichen Werte entsprechend der Ausgabe von lsblk ersetzt werden.
Überprüfen der Informationen für physische Volumes
pvs
Erstellen der Volumegruppe
Erstellen Sie die Volumegruppe mithilfe der bereits initialisierten Geräte:
vgcreate vgdata /dev/mapper/
Überprüfen der Informationen für die Volumegruppe
vgdisplay -v vgdata
pvs
Erstellen der logischen Volumes
lvcreate -L 10G -n lvdata1 vgdata
lvcreate -L 7G -n lvdata2 vgdata
Überprüfen der erstellten logischen Volumes
lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2
Erstellen von Dateisystemen auf den Strukturen für logische Volumes
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata1
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata2
Erstellen der Bereitstellungspunkte für die neuen Dateisysteme
mkdir /data0
mkdir /data1
Hinzufügen der neuen Dateisysteme zu „/etc/fstab“ und Einbinden der Dateisysteme
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
Überprüfen der Einbindung der neuen Dateisysteme
lsblk -fs
df -h
Bei dieser Variation von lsblk werden die Geräte aufgelistet, auf denen die Abhängigkeiten in umgekehrter Reihenfolge angezeigt werden. Mit dieser Option können die Geräte, die nach dem logischen Volume gruppiert sind, anstelle der ursprünglichen Gerätenamen in der Form „/dev/sd[Datenträgernummer]“ identifiziert werden.
Es ist wichtig, dass Sie sicherstellen, dass die Option nofail zu den Bereitstellungspunktoptionen der LVM-Volumes hinzugefügt wird, die auf einem mit Azure Disk Encryption verschlüsselten Gerät erstellt wurden. Sie verhindert, dass das Betriebssystem beim Startvorgang (oder im Wartungsmodus) hängen bleibt.
Wenn Sie die Option nofail nicht verwenden:
- Das Betriebssystem erreicht nie die Phase, in der Azure Disk Encryption gestartet wird und die Datenträger entsperrt und eingebunden werden.
- Die verschlüsselten Datenträger werden am Ende des Startvorgangs entsperrt. Die LVM-Volumes und Dateisysteme werden automatisch eingebunden, bis sie von Azure Disk Encryption entsperrt werden.
Sie können das Neustarten des virtuellen Computers testen und überprüfen, ob die Dateisysteme nach dem Start ebenfalls automatisch eingebunden werden. Dieser Vorgang kann je nach Anzahl und Größe der Dateisysteme einige Minuten dauern.
Neustarten der VM und Überprüfen nach dem Neustart
shutdown -r now
lsblk
df -h
Schritte für RAID-on-Crypt
Nachdem die zugrunde liegenden Datenträger nun verschlüsselt wurden, können Sie mit dem Erstellen der RAID-Strukturen fortfahren. Der Prozess ist derselbe wie der für LVM, aber anstatt den Gerätenamen zu verwenden, verwenden Sie die Pfade „/dev/mapper“ für die einzelnen Datenträger.
Konfigurieren von RAID basierend auf der verschlüsselten Ebene der Datenträger
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
Hinweis
Die Gerätenamen von „/dev/mapper/“ müssen durch Ihre tatsächlichen Werte entsprechend der Ausgabe von lsblk ersetzt werden.
Überprüfen/Überwachen der RAID-Erstellung
watch -n1 cat /proc/mdstat
mdadm --examine /dev/mapper/[]
mdadm --detail /dev/md10
Erstellen eines Dateisystems auf dem neuen RAID-Gerät
mkfs.ext4 /dev/md10
Erstellen Sie einen neuen Bereitstellungspunkt für das Dateisystem, fügen Sie das neue Dateisystem in „/etc/fstab“ hinzu, und binden Sie es ein:
Hinweis
Dieser Ablauf wird für dieses bestimmte Beispiel nur auf einem Gerät durchgeführt. Er wurde so erstellt, um bei Bedarf für mehrere MD-Geräte verwendet werden zu können.
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
Überprüfen Sie die Einbindung des neuen Dateisystems:
lsblk -fs
df -h
Es ist wichtig, dass Sie sicherstellen, dass die Option nofail zu den Bereitstellungspunktoptionen der RAID-Volumes hinzugefügt wird, die auf einem mit Azure Disk Encryption verschlüsselten Gerät erstellt wurden. Sie verhindert, dass das Betriebssystem beim Startvorgang (oder im Wartungsmodus) hängen bleibt.
Wenn Sie die Option nofail nicht verwenden:
- Das Betriebssystem erreicht nie die Phase, in der Azure Disk Encryption gestartet wird und die Datenträger entsperrt und eingebunden werden.
- Die verschlüsselten Datenträger werden am Ende des Startvorgangs entsperrt. Die RAID-Volumes und Dateisysteme werden automatisch eingebunden, bis sie von Azure Disk Encryption entsperrt werden.
Sie können das Neustarten des virtuellen Computers testen und überprüfen, ob die Dateisysteme nach dem Start ebenfalls automatisch eingebunden werden. Dieser Vorgang kann je nach Anzahl und Größe der Dateisysteme einige Minuten dauern.
shutdown -r now
Wenn Sie sich anmelden können:
lsblk
df -h