Configurar o LVM e o RAID em dispositivos criptografados
Aplica-se a: ✔️ VMs do Linux ✔️ Conjuntos de dimensionamento flexíveis
Este artigo é um mostra um passo a passo sobre como executar o Gerenciamento de Volume Lógico (LVM) e o RAID em dispositivos criptografados. O processo se aplica aos seguintes ambientes:
- Distribuições Linux
- RHEL 7.6+
- Ubuntu 18.04+
- SUSE 12+
- Extensão de passagem único do Azure Disk Encryption
- Extensão de passagem dupla do Azure Disk Encryption
Cenários
Os procedimentos neste artigo dão suporte aos seguintes cenários:
- Configurar o LVM sobre dispositivos criptografados (LVM-on-cript)
- Configurar o 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 na parte superior da camada criptografada. Eles são usados para criar o grupo de volumes. Você cria os volumes e adiciona as entradas necessárias em /etc/fstab.
De forma semelhante, o dispositivo RAID é criado no topo da camada criptografada nos discos. Um sistema de arquivos é criado na parte superior do dispositivo RAID e adicionado ao /etc/fstab como um dispositivo normal.
Considerações
Recomendamos usar LVM-on-cript. O RAID é uma opção quando o LVM não pode ser usado devido a limitações específicas de aplicativo ou ambiente.
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 do Linux.
Embora você possa usar esse método quando também estiver criptografando o SO, estamos apenas criptografando as unidades de dados aqui.
Os procedimentos pressupõem que você já tenha revisado os pré-requisitos em Cenários do Azure Disk Encryption em VMs do Linux e em Início Rápido: criar e criptografar uma VM do Linux com a CLI do Azure.
A versão de passagem dupla do Azure Disk Encryption está em um caminho de reprovação e não deve mais ser usada em novas criptografias.
Etapas gerais
Quando você estiver usando as configurações "on-crypt", use o processo descrito nos procedimentos a seguir.
Observação
Estamos usando variáveis em todo o artigo. Substitua os valores adequadamente.
Implantar uma máquina virtual
Os comandos a seguir são opcionais, mas é recomendável aplicá-los em uma máquina virtual (VM) implantada recentemente.
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 o $N
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 anexados à 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:
sistema operacional:
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 em cima dos 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. Nesse exemplo, estamos usando quatro discos de dados.
lsblk
Criar um sistema de arquivo na parte superior de cada disco
Esse comando itera a criação de um sistema de arquivos ext4 em cada disco definido na parte "em" do ciclo "para".
for disk in c d e f; do echo mkfs.ext4 -F /dev/sd${disk}; done |bash
Localize o identificador universal 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.
Esse comando também itera em cada disco definido na parte "em" do ciclo "para":
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
Criptografrar 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 status de criptografia
Continue para a próxima etapa somente quando todos os discos forem criptografados.
PowerShell:
Get-AzVmDiskEncryptionStatus -ResourceGroupName ${RGNAME} -VMName ${VMNAME}
CLI do Azure:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Portal:
Nível do SO:
lsblk
A extensão adicionará os sistemas de arquivos ao /var/lib/azure_disk_encryption_config/azure_crypt_mount (uma criptografia antiga) ou a /etc/crypttab (novas criptografias).
Observação
Não modifique nenhum desses arquivos.
Esse arquivo cuidará da ativação desses discos durante o processo de inicialização para que o LVM ou o 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 obter os discos montados 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 usado durante o processo de preparação.)
Remover as pastas temporárias e as entradas de 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
Etapas para LVM-on-cript
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 cript sobre o disco, não no próprio disco).
Configurar o LVM na parte superior das camadas criptografadas
Prepare os volumes físicos
Você receberá um aviso perguntando se está OK para apagar a assinatura do sistema de arquivos. Continue inserindo you use echo "y" , conforme 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
Observação
Os nomes de /dev/mapper/device aqui precisam ser substituídos por seus valores reais com base na saída de lsblk.
Verificar as informações de volumes físicos
pvs
Criar o grupo de volume
Crie o grupo de volume usando os mesmos dispositivos já inicializados:
vgcreate vgdata /dev/mapper/
Verifique as informações do grupo de volume
vgdisplay -v vgdata
pvs
Criar volumes lógicos
lvcreate -L 10G -n lvdata1 vgdata
lvcreate -L 7G -n lvdata2 vgdata
Verificar os volumes lógicos criados
lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2
Criar 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
Adicionar os novos sistemas de arquivos ao /etc/fstab e montá-los
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
Verificar se os novos sistemas de arquivos estão montados
lsblk -fs
df -h
Nessa variação de lsblk, estamos listando os dispositivos que mostram as dependências na ordem inversa. Essa opção ajuda a identificar os dispositivos agrupados pelo volume lógico em vez dos nomes de dispositivo /dev/sd[disco] originais.
É importante garantir que a opção nofail seja adicionada às opções de ponto de montagem dos volumes LVM criados na parte superior de um dispositivo criptografado por meio do Azure Disk Encryption. Isso impede 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 criptografados serão desbloqueados no final do processo de inicialização. 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 forem automaticamente montados 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
Etapas para RAID-on-cript
Agora que os discos subjacentes estão criptografados, você pode continuar criando 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 o 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
Observação
Os nomes de /dev/mapper/device aqui precisam ser substituídos com seus valores reais com base na saída de lsblk.
Verificar/monitorar a criação de RAID
watch -n1 cat /proc/mdstat
mdadm --examine /dev/mapper/[]
mdadm --detail /dev/md10
Criar 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:
Observação
Esse ciclo itera apenas em um dispositivo para esse exemplo específico, é criado dessa forma para ser usado em 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 garantir que a opção nofail seja adicionada às opções de ponto de montagem dos volumes RAID criados na parte superior de um dispositivo criptografado por meio do Azure Disk Encryption. Isso impede 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 criptografados serão desbloqueados no final do processo de inicialização. Os volumes RAID 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 forem automaticamente montados 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 você pode fazer logon:
lsblk
df -h