Share via


Configurare LVM e RAID nei dispositivi crittografati

Si applica a: ✔️ set di scalabilità flessibili di macchine virtuali ✔️ Linux

Questo articolo è un processo dettagliato per come eseguire Gestione volumi logici e RAID nei dispositivi crittografati. Il processo si applica agli ambienti seguenti:

  • Distribuzioni di Linux
    • RHEL 7.6+
    • Ubuntu 18.04+
    • SUSE 12+
  • Estensione a passaggio singolo di Crittografia dischi di Azure
  • Estensione dual-pass di Crittografia dischi di Azure

Scenari

Le procedure contenute in questo articolo supportano gli scenari seguenti:

  • Configurare LVM in cima ai dispositivi crittografati (LVM-on-crypt)
  • Configurare RAID sopra i dispositivi crittografati (RAID-on-crypt)

Dopo aver crittografato il dispositivo o i dispositivi sottostanti, è possibile creare le strutture LVM o RAID sopra quel livello crittografato.

I volumi fisici (PV) vengono creati sopra il livello crittografato. I volumi fisici vengono usati per creare il gruppo di volumi. Creare i volumi e aggiungere le voci necessarie in /etc/fstab.

Diagramma dei livelli delle strutture LVM

In modo analogo, il dispositivo RAID viene creato sopra il livello crittografato sui dischi. Un file system viene creato sopra il dispositivo RAID e aggiunto a /etc/fstab come dispositivo normale.

Considerazioni

È consigliabile usare LVM-on-crypt. RAID è un'opzione quando non è possibile usare LVM a causa di specifiche limitazioni dell'applicazione o dell'ambiente.

Si userà l'opzione EncryptFormatAll . Per altre informazioni su questa opzione, vedere Usare la funzionalità EncryptFormatAll per i dischi dati in macchine virtuali Linux.

Anche se è possibile usare questo metodo quando si sta anche crittografando il sistema operativo, è sufficiente crittografare le unità dati qui.

Le procedure presuppongono che siano già stati esaminati i prerequisiti negli scenari di Crittografia dischi di Azure in macchine virtuali Linux e in Avvio rapido: Creare e crittografare una macchina virtuale Linux con l'interfaccia della riga di comando di Azure.

La versione dual-pass di Crittografia dischi di Azure è in un percorso di deprecazione e non deve più essere usata nelle nuove crittografia.

Passaggi generali

Quando si usano le configurazioni "on-crypt", usare il processo descritto nelle procedure seguenti.

Nota

Nell'intero articolo vengono usate variabili. Sostituire i valori di conseguenza.

Distribuire una macchina virtuale

I comandi seguenti sono facoltativi, ma è consigliabile applicarli in una macchina virtuale appena distribuita.

PowerShell:

New-AzVm -ResourceGroupName ${RGNAME} `
-Name ${VMNAME} `
-Location ${LOCATION} `
-Size ${VMSIZE} `
-Image ${OSIMAGE} `
-Credential ${creds} `
-Verbose

Interfaccia della riga di comando di Azure:

az vm create \
-n ${VMNAME} \
-g ${RGNAME} \
--image ${OSIMAGE} \
--admin-username ${username} \
--admin-password ${password} \
-l ${LOCATION} \
--size ${VMSIZE} \
-o table

Collegare dischi alla macchina virtuale

Ripetere i comandi seguenti per $N il numero di nuovi dischi che si desidera collegare alla macchina virtuale.

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}

Interfaccia della riga di comando di Azure:

az vm disk attach \
-g ${RGNAME} \
--vm-name ${VMNAME} \
--name ${VMNAME}datadisk1 \
--size-gb 5 \
--new \
-o table

Verificare che i dischi siano collegati alla macchina virtuale

PowerShell:

$VM = Get-AzVM -ResourceGroupName ${RGNAME} -Name ${VMNAME}
$VM.StorageProfile.DataDisks | Select-Object Lun,Name,DiskSizeGB

Elenco dei dischi collegati in PowerShell

Interfaccia della riga di comando di Azure:

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

Elenco di dischi collegati nell'interfaccia della riga di comando di Azure

Portale:

Elenco di dischi collegati nel portale

Sistema operativo:

lsblk

Elenco di dischi collegati nel sistema operativo

Configurare i dischi da crittografare

Questa configurazione viene eseguita a livello di sistema operativo. I dischi corrispondenti sono configurati per una crittografia tradizionale tramite Crittografia dischi di Azure:

  • I file system vengono creati sopra i dischi.
  • I punti di montaggio temporanei vengono creati per montare i file system.
  • I file system sono configurati in /etc/fstab da montare al momento dell'avvio.

Controllare la lettera di dispositivo assegnata ai nuovi dischi. In questo esempio si usano quattro dischi dati.

lsblk

Dischi dati collegati al sistema operativo

Creare un file system sopra ogni disco

Questo comando esegue l'iterazione della creazione di un file system ext4 in ogni disco definito nella parte "in" del ciclo "for".

for disk in c d e f; do echo mkfs.ext4 -F /dev/sd${disk}; done |bash

Creazione di un file system ext4

Trovare l'identificatore univoco universale (UUID) dei file system creati di recente, creare una cartella temporanea, aggiungere le voci corrispondenti in /etc/fstab e montare tutti i file system.

Questo comando esegue anche l'iterazione in ogni disco definito nella parte "in" del ciclo "for":

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

Verificare che i dischi siano montati correttamente

lsblk

Elenco dei file system temporanei montati

Verificare anche che i dischi siano configurati:

cat /etc/fstab

Informazioni di configurazione tramite fstab

Crittografare i dischi dati

PowerShell usando una chiave di crittografia delle chiavi (KEK):

$sequenceVersion = [Guid]::NewGuid()
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGNAME `
-VMName ${VMNAME} `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
-DiskEncryptionKeyVaultId $KeyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
-KeyEncryptionKeyVaultId $KeyVaultResourceId `
-VolumeType 'DATA' `
-EncryptFormatAll `
-SequenceVersion $sequenceVersion `
-skipVmBackup;

Interfaccia della riga di comando di Azure con un 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

Verificare lo stato di crittografia

Continuare con il passaggio successivo solo quando tutti i dischi vengono crittografati.

PowerShell:

Get-AzVmDiskEncryptionStatus -ResourceGroupName ${RGNAME} -VMName ${VMNAME}

Stato della crittografia in PowerShell

Interfaccia della riga di comando di Azure:

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

Stato della crittografia nell'interfaccia della riga di comando di Azure

Portale:

Stato di crittografia nel portale

Livello del sistema operativo:

lsblk

Stato di crittografia nel sistema operativo

L'estensione aggiungerà i file system a /var/lib/azure_disk_encryption_config/azure_crypt_mount (una crittografia precedente) o a /etc/crypttab (nuove crittografia).

Nota

Non modificare nessuno di questi file.

Questo file si occupa dell'attivazione di questi dischi durante il processo di avvio in modo che LVM o RAID possano usarli in un secondo momento.

Non preoccuparti dei punti di montaggio in questo file. Crittografia dischi di Azure perderà la possibilità di ottenere i dischi montati come un normale file system dopo aver creato un volume fisico o un dispositivo RAID in cima a tali dispositivi crittografati. Verrà rimosso il formato del file system usato durante il processo di preparazione.

Rimuovere le cartelle temporanee e le voci fstab temporanee

Smontare i file system nei dischi che verranno usati come parte di LVM.

for disk in c d e f; do umount /tempdata${disk}; done

Rimuovere le voci /etc/fstab:

vi /etc/fstab

Verificare che i dischi non siano montati e che le voci in /etc/fstab siano state rimosse

lsblk

Verifica che i file system temporanei siano smontati

Verificare che i dischi siano configurati:

cat /etc/fstab

Verifica che le voci fstab temporanee vengano rimosse

Passaggi per LVM-on-crypt

Dopo aver crittografato i dischi sottostanti, è possibile creare le strutture LVM.

Anziché usare il nome del dispositivo, usare i percorsi /dev/mapper per ognuno dei dischi per creare un volume fisico (sul livello di crittografia sopra il disco, non sul disco stesso).

Configurare LVM sui livelli crittografati

Creare i volumi fisici

Verrà visualizzato un avviso che chiede se è OK per cancellare la firma del file system. Continuare immettendo y o usando echo "y", come illustrato di seguito:

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

Verifica che sia stato creato un volume fisico

Nota

I nomi di /dev/mapper/device devono essere sostituiti per i valori effettivi in base all'output di lsblk.

Verificare le informazioni per i volumi fisici

pvs

Informazioni per i volumi fisici

Creare il gruppo di volumi

Creare il gruppo di volumi usando gli stessi dispositivi già inizializzati:

vgcreate vgdata /dev/mapper/

Controllare le informazioni per il gruppo di volumi

vgdisplay -v vgdata
pvs

Informazioni per il gruppo di volumi

Creare volumi logici

lvcreate -L 10G -n lvdata1 vgdata
lvcreate -L 7G -n lvdata2 vgdata

Controllare i volumi logici creati

lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2

Informazioni per i volumi logici

Creare file system sopra le strutture per i volumi logici

echo "yes" | mkfs.ext4 /dev/vgdata/lvdata1
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata2

Creare i punti di montaggio per i nuovi file system

mkdir /data0
mkdir /data1

Aggiungere i nuovi file system a /etc/fstab e montarli

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

Verificare che i nuovi file system siano montati

lsblk -fs
df -h

Screenshot che mostra una finestra della console con i file system montati come data0 e data1.

In questa variante di lsblk vengono elencati i dispositivi che mostrano le dipendenze in ordine inverso. Questa opzione consente di identificare i dispositivi raggruppati in base al volume logico anziché ai nomi dei dispositivi /dev/sd[disk] originali.

È importante assicurarsi che l'opzione nofail venga aggiunta alle opzioni del punto di montaggio dei volumi LVM creati su un dispositivo crittografato tramite Crittografia dischi di Azure. Impedisce al sistema operativo di rimanere bloccato durante il processo di avvio (o in modalità di manutenzione).

Se non si usa l'opzione nofail :

  • Il sistema operativo non entra mai nella fase in cui viene avviata Crittografia dischi di Azure e i dischi dati vengono sbloccati e montati.
  • I dischi crittografati verranno sbloccati alla fine del processo di avvio. I volumi e i file system LVM verranno montati automaticamente fino a quando Crittografia dischi di Azure non li sblocca.

È possibile testare il riavvio della macchina virtuale e verificare che anche i file system vengano montati automaticamente dopo l'avvio. Questo processo potrebbe richiedere alcuni minuti, a seconda del numero e delle dimensioni dei file system.

Riavviare la macchina virtuale e verificare dopo il riavvio

shutdown -r now
lsblk
df -h

Passaggi per RAID-on-crypt

Ora che i dischi sottostanti sono crittografati, è possibile continuare a creare le strutture RAID. Il processo è uguale a quello per LVM, ma invece di usare il nome del dispositivo, usare i percorsi /dev/mapper per ogni disco.

Configurare RAID sopra il livello crittografato dei dischi

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

Informazioni per RAID configurato tramite il comando mdadm

Nota

I nomi di /dev/mapper/device devono essere sostituiti con i valori effettivi, in base all'output di lsblk.

Controllare/monitorare la creazione RAID

watch -n1 cat /proc/mdstat
mdadm --examine /dev/mapper/[]
mdadm --detail /dev/md10

Stato raid

Creare un file system sopra il nuovo dispositivo RAID

mkfs.ext4 /dev/md10

Creare un nuovo punto di montaggio per il file system, aggiungere il nuovo file system a /etc/fstab e montarlo:

Nota

Questo ciclo esegue l'iterazione solo in un dispositivo per questo particolare esempio, viene creato in questo modo per essere usato per più dispositivi md, se necessario.

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

Verificare che il nuovo file system sia montato:

lsblk -fs
df -h

Screenshot che mostra una finestra della console con un file system montato come raiddata.

È importante assicurarsi che l'opzione nofail venga aggiunta alle opzioni del punto di montaggio dei volumi RAID creati sopra un dispositivo crittografato tramite Crittografia dischi di Azure. Impedisce al sistema operativo di rimanere bloccato durante il processo di avvio (o in modalità di manutenzione).

Se non si usa l'opzione nofail :

  • Il sistema operativo non entra mai nella fase in cui viene avviata Crittografia dischi di Azure e i dischi dati vengono sbloccati e montati.
  • I dischi crittografati verranno sbloccati alla fine del processo di avvio. I volumi RAID e i file system verranno montati automaticamente fino a quando Crittografia dischi di Azure non li sblocca.

È possibile testare il riavvio della macchina virtuale e verificare che anche i file system vengano montati automaticamente dopo l'avvio. Questo processo potrebbe richiedere alcuni minuti, a seconda del numero e delle dimensioni dei file system.

shutdown -r now

E quando è possibile accedere:

lsblk
df -h

Passaggi successivi