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.
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
Interfaccia della riga di comando di Azure:
az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table
Portale:
Sistema operativo:
lsblk
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
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
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
Verificare anche che i dischi siano configurati:
cat /etc/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}
Interfaccia della riga di comando di Azure:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Portale:
Livello del sistema operativo:
lsblk
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
Verificare che i dischi siano configurati:
cat /etc/fstab
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
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
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
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
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
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
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
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
È 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