Compartilhar via


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.

Diagrama das camadas de estruturas LVM

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

Lista de discos anexados ao PowerShell

CLI do Azure:

az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table

Lista de discos anexados à CLI do Azure

Portal:

Lista de discos anexados ao portal

sistema operacional:

lsblk

Lista de discos anexados ao SO

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

Discos de dados anexados ao SO

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

Criação de um sistema de arquivos ext4

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

Lista de sistemas de arquivos temporários montados

Verifique também se os discos estão configurados:

cat /etc/fstab

Informações de configuração via 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}

Status de criptografia no PowerShell

CLI do Azure:

az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table

Status de criptografia na CLI do Azure

Portal:

Status de criptografia no portal

Nível do SO:

lsblk

Status de criptografia no SO

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

Verifique se os sistemas de arquivos temporários estão desmontados

E verifique se os discos estão configurados:

cat /etc/fstab

Verificação de que as entradas de fstab temporárias foram removidas

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

Verificação de que um volume físico foi criado

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

Informações para volumes físicos

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

Informações para o grupo de volume

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

Informações para volumes lógicos

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

Captura de tela mostra uma janela de console com sistemas de arquivos montados como data0 e data1.

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

Informações para o RAID configurado por meio do comando mdadm

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

Status do RAID

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

Captura de tela mostra uma janela de console com um sistema de arquivos montado como raiddata.

É 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

Próximas etapas