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-Distributionen
    • 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.

Diagramm zu den Ebenen von LVM-Strukturen

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

Liste der angefügten Datenträger in PowerShell

Azure CLI:

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

Liste der angefügten Datenträger in der Azure CLI

Portal:

Liste der angefügten Datenträger im Portal

Betriebssystem:

lsblk

Liste der angefügten Datenträger im Betriebssystem

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

An das Betriebssystem angefügte Datenträger

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

Erstellen eines ext4-Dateisystems

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

Liste der eingebundenen temporären Dateisysteme

Überprüfen Sie auch, ob die Datenträger konfiguriert sind:

cat /etc/fstab

Konfigurationsinformationen über „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}

Verschlüsselungsstatus in PowerShell

Azure CLI:

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

Verschlüsselungsstatus in der Azure CLI

Portal:

Verschlüsselungsstatus im Portal

Betriebssystemebene:

lsblk

Verschlüsselungsstatus im Betriebssystem

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üfung, ob die Einbindung temporärer Dateisysteme aufgehoben wird

Überprüfen Sie auch, ob die Datenträger konfiguriert sind:

cat /etc/fstab

Überprüfung, ob temporäre fstab-Einträge entfernt werden

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

Überprüfung, ob ein physisches Volume erstellt wurde

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

Informationen für physische Volumes

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

Informationen für die Volumegruppe

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

Informationen für logische Volumes

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

Screenshot mit einem Konsolenfenster mit Dateisystemen, die als data0 und data1 eingebunden sind.

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

Informationen zum konfigurierten RAID über den Befehl „mdadm“

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

Status von RAID

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

Screenshot mit einem Konsolenfenster mit einem Dateisystem, das als raiddata eingebunden ist.

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

Nächste Schritte