Condividi tramite


Configurare LVM e RAID nei dispositivi crittografati

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

Questo articolo è un processo dettagliato per l'esecuzione di LVM (Logical Volume Management) e RAID nei dispositivi crittografati. Il processo si applica agli ambienti seguenti:

  • Distribuzioni linux
    • RHEL 7.6+
    • Ubuntu 18.04+
    • SUSE 12+
  • Crittografia dischi di Azure'estensione a passaggio singolo
  • Crittografia dischi di Azure'estensione a doppio passaggio

Scenari

Le procedure descritte in questo articolo supportano gli scenari seguenti:

  • Configurare LVM sui dispositivi crittografati (LVM-on-crypt)
  • Configurare RAID su dispositivi crittografati (RAID-on-crypt)

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

I volumi fisici (PVS) 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 limitazioni specifiche 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 nelle macchine virtuali Linux.

Anche se è possibile usare questo metodo quando si crittografa anche 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 nelle 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 Crittografia dischi di Azure dual pass si trova in un percorso di deprecazione e non deve più essere usata nelle nuove critografie.

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 a 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 da 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 dei 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 vengono configurati in /etc/fstab da montare in fase di avvio.

Controllare la lettera di dispositivo assegnata ai nuovi dischi. In questo esempio vengono usati 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 di file system temporanei montati

Verificare anche che i dischi siano configurati:

cat /etc/fstab

Informazioni di configurazione tramite fstab

Crittografare i dischi dati

PowerShell con una chiave di crittografia della chiave (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 una chiave 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 della crittografia

Continuare con il passaggio successivo solo quando tutti i dischi sono 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 della crittografia nel portale

Livello del sistema operativo:

lsblk

Stato della 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 crittografie).

Nota

Non modificare nessuno di questi file.

Questo file si occuperà 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 montare i dischi come un normale file system dopo aver creato un volume fisico o un dispositivo RAID su 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

E 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

Ora che i dischi sottostanti sono crittografati, è 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 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 /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 relative al 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 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 sopra un dispositivo crittografato tramite Crittografia dischi di Azure. Impedisce il blocco del sistema operativo 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 avviato 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 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 /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 il blocco del sistema operativo 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 avviato 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 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