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.
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
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 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
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 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}
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 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
Verificare che i dischi siano configurati:
cat /etc/fstab
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
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
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
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 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
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
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 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