Configurar o LVM e o RAID em dispositivos encriptados
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Este artigo é um processo passo a passo sobre como executar LVM (Logical Volume Management) e RAID em dispositivos criptografados. O processo aplica-se aos seguintes ambientes:
- Distribuições Linux
- RHEL 7,6+
- Ubuntu 18.04+
- SUSE 12+
- Extensão de passagem única do Azure Disk Encryption
- Extensão de passagem dupla do Azure Disk Encryption
Cenários
Os procedimentos neste artigo suportam os seguintes cenários:
- Configurar o LVM sobre dispositivos criptografados (LVM-on-crypt)
- Configurar RAID sobre dispositivos criptografados (RAID-on-crypt)
Depois que o dispositivo ou dispositivos subjacentes forem criptografados, você poderá criar as estruturas LVM ou RAID sobre essa camada criptografada.
Os volumes físicos (PVs) são criados sobre a camada criptografada. Os volumes físicos são usados para criar o grupo de volumes. Você cria os volumes e adiciona as entradas necessárias em /etc/fstab.
Da mesma forma, o dispositivo RAID é criado sobre a camada criptografada nos discos. Um sistema de arquivos é criado sobre o dispositivo RAID e adicionado ao /etc/fstab como um dispositivo normal.
Considerações
Recomendamos que você use LVM-on-crypt. RAID é uma opção quando o LVM não pode ser usado devido a limitações específicas de aplicativos ou ambientes.
Você usará a opção EncryptFormatAll . Para obter mais informações sobre essa opção, consulte Usar o recurso EncryptFormatAll para discos de dados em VMs Linux.
Embora você possa usar esse método quando também estiver criptografando o sistema operacional, estamos apenas criptografando unidades de dados aqui.
Os procedimentos pressupõem que você já revisou os pré-requisitos em cenários de Criptografia de Disco do Azure em VMs Linux e em Guia de início rápido: criar e criptografar uma VM Linux com a CLI do Azure.
A versão dual-pass do Azure Disk Encryption está em um caminho de substituição e não deve mais ser usada em novas criptografias.
Passos gerais
Quando estiver usando as configurações "on-crypt", use o processo descrito nos procedimentos a seguir.
Nota
Estamos usando variáveis ao longo do artigo. Substitua os valores de acordo.
Implementar uma VM
Os comandos a seguir são opcionais, mas recomendamos que você os aplique em uma máquina virtual (VM) recém-implantada.
PowerShell:
New-AzVm -ResourceGroupName ${RGNAME} `
-Name ${VMNAME} `
-Location ${LOCATION} `
-Size ${VMSIZE} `
-Image ${OSIMAGE} `
-Credential ${creds} `
-Verbose
CLI do Azure:
az vm create \
-n ${VMNAME} \
-g ${RGNAME} \
--image ${OSIMAGE} \
--admin-username ${username} \
--admin-password ${password} \
-l ${LOCATION} \
--size ${VMSIZE} \
-o table
Anexar discos à VM
Repita os comandos a seguir para $N
o número de novos discos que você deseja anexar à VM.
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}
CLI do Azure:
az vm disk attach \
-g ${RGNAME} \
--vm-name ${VMNAME} \
--name ${VMNAME}datadisk1 \
--size-gb 5 \
--new \
-o table
Verifique se os discos estão conectados à VM
PowerShell:
$VM = Get-AzVM -ResourceGroupName ${RGNAME} -Name ${VMNAME}
$VM.StorageProfile.DataDisks | Select-Object Lun,Name,DiskSizeGB
CLI do Azure:
az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table
Portal:
SO:
lsblk
Configurar os discos a serem criptografados
Essa configuração é feita no nível do sistema operacional. Os discos correspondentes são configurados para uma criptografia tradicional por meio do Azure Disk Encryption:
- Os sistemas de arquivos são criados sobre os discos.
- Pontos de montagem temporários são criados para montar os sistemas de arquivos.
- Os sistemas de arquivos são configurados em /etc/fstab para serem montados no momento da inicialização.
Verifique a letra do dispositivo atribuída aos novos discos. Neste exemplo, estamos usando quatro discos de dados.
lsblk
Crie um sistema de arquivos sobre cada disco
Este comando itera a criação de um sistema de arquivos ext4 em cada disco definido na parte "in" do ciclo "for".
for disk in c d e f; do echo mkfs.ext4 -F /dev/sd${disk}; done |bash
Encontre o identificador universalmente exclusivo (UUID) dos sistemas de arquivos que você criou recentemente, crie uma pasta temporária, adicione as entradas correspondentes em /etc/fstab e monte todos os sistemas de arquivos.
Este comando também itera em cada disco definido na parte "in" do 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
Verifique se os discos estão montados corretamente
lsblk
Verifique também se os discos estão configurados:
cat /etc/fstab
Criptografar os discos de dados
PowerShell usando uma chave de criptografia de chave (KEK):
$sequenceVersion = [Guid]::NewGuid()
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGNAME `
-VMName ${VMNAME} `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
-DiskEncryptionKeyVaultId $KeyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
-KeyEncryptionKeyVaultId $KeyVaultResourceId `
-VolumeType 'DATA' `
-EncryptFormatAll `
-SequenceVersion $sequenceVersion `
-skipVmBackup;
CLI do Azure usando um 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
Verificar o estado da encriptação
Continue para a próxima etapa somente quando todos os discos estiverem criptografados.
PowerShell:
Get-AzVmDiskEncryptionStatus -ResourceGroupName ${RGNAME} -VMName ${VMNAME}
CLI do Azure:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Portal:
Nível OS:
lsblk
A extensão adicionará os sistemas de ficheiros a /var/lib/azure_disk_encryption_config/azure_crypt_mount (uma encriptação antiga) ou a /etc/crypttab (novas encriptações).
Nota
Não modifique nenhum destes ficheiros.
Esse arquivo cuidará da ativação desses discos durante o processo de inicialização para que LVM ou RAID possam usá-los mais tarde.
Não se preocupe com os pontos de montagem neste arquivo. O Azure Disk Encryption perderá a capacidade de montar os discos como um sistema de arquivos normal depois de criarmos um volume físico ou um dispositivo RAID sobre esses dispositivos criptografados. (Isso removerá o formato do sistema de arquivos que usamos durante o processo de preparação.)
Remova as pastas temporárias e as entradas fstab temporárias
Desmonte os sistemas de arquivos nos discos que serão usados como parte do LVM.
for disk in c d e f; do umount /tempdata${disk}; done
E remova as entradas /etc/fstab:
vi /etc/fstab
Verifique se os discos não estão montados e se as entradas em /etc/fstab foram removidas
lsblk
E verifique se os discos estão configurados:
cat /etc/fstab
Passos para LVM-on-crypt
Agora que os discos subjacentes estão criptografados, você pode criar as estruturas LVM.
Em vez de usar o nome do dispositivo, use os caminhos /dev/mapper para cada um dos discos para criar um volume físico (na camada de criptografia na parte superior do disco, não no próprio disco).
Configurar o LVM sobre as camadas criptografadas
Criar os volumes físicos
Você receberá um aviso perguntando se não há problema em apagar a assinatura do sistema de arquivos. Continue digitando y ou use o eco "y" como mostrado:
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
Os nomes /dev/mapper/device aqui precisam ser substituídos para seus valores reais com base na saída do lsblk.
Verificar as informações para volumes físicos
pvs
Criar o grupo de volumes
Crie o grupo de volumes usando os mesmos dispositivos já inicializados:
vgcreate vgdata /dev/mapper/
Verifique as informações para o grupo de volumes
vgdisplay -v vgdata
pvs
Criar volumes lógicos
lvcreate -L 10G -n lvdata1 vgdata
lvcreate -L 7G -n lvdata2 vgdata
Verifique os volumes lógicos criados
lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2
Crie sistemas de arquivos sobre as estruturas para volumes lógicos
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata1
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata2
Criar os pontos de montagem para os novos sistemas de arquivos
mkdir /data0
mkdir /data1
Adicione os novos sistemas de arquivos ao /etc/fstab e monte-os
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
Verifique se os novos sistemas de arquivos estão montados
lsblk -fs
df -h
Nesta variação do lsblk, estamos listando os dispositivos que mostram as dependências em ordem inversa. Esta opção ajuda a identificar os dispositivos agrupados pelo volume lógico em vez dos nomes de dispositivo /dev/sd[disk] originais.
É importante certificar-se de que a opção nofail é adicionada às opções de ponto de montagem dos volumes LVM criados sobre um dispositivo encriptado através da Encriptação de Disco do Azure. Ele evita que o sistema operacional fique preso durante o processo de inicialização (ou no modo de manutenção).
Se você não usar a opção nofail :
- O sistema operacional nunca entrará no estágio em que o Azure Disk Encryption é iniciado e os discos de dados são desbloqueados e montados.
- Os discos encriptados serão desbloqueados no final do processo de arranque. Os volumes LVM e os sistemas de arquivos serão montados automaticamente até que o Azure Disk Encryption os desbloqueie.
Você pode testar a reinicialização da VM e validar se os sistemas de arquivos também estão sendo montados automaticamente após o tempo de inicialização. Esse processo pode levar vários minutos, dependendo do número e dos tamanhos dos sistemas de arquivos.
Reinicialize a VM e verifique após a reinicialização
shutdown -r now
lsblk
df -h
Passos para RAID-on-crypt
Agora que os discos subjacentes estão encriptados, pode continuar a criar as estruturas RAID. O processo é o mesmo do LVM, mas em vez de usar o nome do dispositivo, use os caminhos /dev/mapper para cada disco.
Configurar RAID sobre a camada criptografada dos discos
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
Os nomes /dev/mapper/device aqui precisam ser substituídos por seus valores reais, com base na saída do lsblk.
Verificar/monitorar a criação de RAID
watch -n1 cat /proc/mdstat
mdadm --examine /dev/mapper/[]
mdadm --detail /dev/md10
Crie um sistema de arquivos sobre o novo dispositivo RAID
mkfs.ext4 /dev/md10
Crie um novo ponto de montagem para o sistema de arquivos, adicione o novo sistema de arquivos ao /etc/fstab e monte-o:
Nota
Este ciclo itera apenas em um dispositivo para este exemplo específico, é construído desta forma para ser usado para vários dispositivos MD, se necessário.
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
Verifique se o novo sistema de arquivos está montado:
lsblk -fs
df -h
É importante certificar-se de que a opção nofail é adicionada às opções de ponto de montagem dos volumes RAID criados sobre um dispositivo criptografado por meio da Criptografia de Disco do Azure. Ele evita que o sistema operacional fique preso durante o processo de inicialização (ou no modo de manutenção).
Se você não usar a opção nofail :
- O sistema operacional nunca entrará no estágio em que o Azure Disk Encryption é iniciado e os discos de dados são desbloqueados e montados.
- Os discos encriptados serão desbloqueados no final do processo de arranque. Os volumes RAID e os sistemas de arquivos serão montados automaticamente até que a Criptografia de Disco do Azure os desbloqueie.
Você pode testar a reinicialização da VM e validar se os sistemas de arquivos também estão sendo montados automaticamente após o tempo de inicialização. Esse processo pode levar vários minutos, dependendo do número e dos tamanhos dos sistemas de arquivos.
shutdown -r now
E quando pode iniciar sessão:
lsblk
df -h