Como redimensionar dispositivos de gestão de volumes lógicos que utilizam o Azure Disk Encryption
Aplica-se a: ✔️ Conjuntos de dimensionamento flexíveis de VMs ✔️ do Linux
Neste artigo, irá aprender a redimensionar discos de dados que utilizam o Azure Disk Encryption. Para redimensionar os discos, irá utilizar a gestão de volumes lógicos (LVM) no Linux. Os passos aplicam-se a vários cenários.
Pode utilizar este processo de redimensionamento nos seguintes ambientes:
- Distribuições do Linux:
- Red Hat Enterprise Linux (RHEL) 7 ou posterior
- Ubuntu 18.04 ou posterior
- SUSE 12 ou posterior
- Versões do Azure Disk Encryption:
- Extensão de passagem única
- Extensão de passagem dupla
Pré-requisitos
Este artigo pressupõe que tem:
Uma configuração de LVM existente. Para obter mais informações, veja Configurar o LVM numa VM do Linux.
Discos que já estão encriptados pelo Azure Disk Encryption. Para obter mais informações, veja Configurar o LVM e o RAID em dispositivos encriptados.
Experiência com Linux e LVM.
Experiência na utilização de caminhos /dev/disk/scsi1/ para discos de dados no Azure. Para obter mais informações, veja Troubleshoot Linux VM device name problems (Resolver problemas de nomes de dispositivos de VMs do Linux).
Cenários
Os procedimentos neste artigo aplicam-se aos seguintes cenários:
- Configurações tradicionais de LVM e LVM na cripta
- Encriptação LVM tradicional
- LVM-on-crypt
Configurações tradicionais de LVM e LVM na cripta
As configurações LVM e LVM na cripta tradicionais expandem um volume lógico (LV) quando o grupo de volumes (VG) tem espaço disponível.
Encriptação LVM tradicional
Na encriptação LVM tradicional, os LVs são encriptados. O disco inteiro não está encriptado.
Ao utilizar a encriptação LVM tradicional, pode:
- Expanda o LV quando adicionar um novo volume físico (PV).
- Expanda o LV quando redimensionar um PV existente.
LVM-on-crypt
O método recomendado para a encriptação de discos é LVM-on-encrypt. Este método encripta todo o disco, não apenas o LV.
Ao utilizar o LVM-on-crypt, pode:
- Expanda o LV quando adicionar um novo PV.
- Expanda o LV quando redimensionar um PV existente.
Nota
Não recomendamos misturar a encriptação LVM tradicional e a encriptação LVM na mesma VM.
As secções seguintes fornecem exemplos de como utilizar o LVM e o LVM-on-crypt. Os exemplos utilizam valores pré-instalados para discos, PVs, VGs, LVs, sistemas de ficheiros, identificadores universalmente exclusivos (UUIDs) e pontos de montagem. Substitua estes valores pelos seus próprios valores para se ajustarem ao seu ambiente.
Expandir um LV quando o VG tiver espaço disponível
A forma tradicional de redimensionar LVs é expandir um LV quando o VG tiver espaço disponível. Pode utilizar este método para discos não encriptados, volumes tradicionais encriptados por LVM e configurações LVM-on-crypt.
Verifique o tamanho atual do sistema de ficheiros que pretende aumentar:
df -h /mountpoint
Verifique se o VG tem espaço suficiente para aumentar o LV:
sudo vgs
Também pode utilizar
vgdisplay
:sudo vgdisplay vgname
Identifique que LV precisa de ser redimensionado:
sudo lsblk
Para LVM-on-crypt, a diferença é que este resultado mostra que a camada encriptada está ao nível do disco.
Verifique o tamanho do LV:
sudo lvdisplay lvname
Aumente o tamanho do LV ao utilizar
-r
para redimensionar o sistema de ficheiros online:sudo lvextend -r -L +2G /dev/vgname/lvname
Verifique os novos tamanhos do LV e do sistema de ficheiros:
df -h /mountpoint
A saída de tamanho indica que o LV e o sistema de ficheiros foram redimensionados com êxito.
Pode verificar novamente as informações do LV para confirmar as alterações ao nível do LV:
sudo lvdisplay lvname
Expandir um volume LVM tradicional ao adicionar um novo PV
Quando precisar de adicionar um novo disco para aumentar o tamanho da VG, expanda o volume de LVM tradicional ao adicionar um novo PV.
Verifique o tamanho atual do sistema de ficheiros que pretende aumentar:
df -h /mountpoint
Verifique a configuração atual do PV:
sudo pvs
Verifique as informações atuais da VG:
sudo vgs
Verifique a lista de discos atual. Identifique os discos de dados ao verificar os dispositivos em /dev/disk/azure/scsi1/.
sudo ls -l /dev/disk/azure/scsi1/
Verifique o resultado de
lsblk
:sudo lsbk
Anexe o novo disco à VM ao seguir as instruções em Anexar um disco de dados a uma VM do Linux.
Verifique a lista de discos e repare no novo disco.
sudo ls -l /dev/disk/azure/scsi1/
sudo lsblk
Crie um novo PV sobre o novo disco de dados:
sudo pvcreate /dev/newdisk
Este método utiliza todo o disco como um PV sem uma partição. Em alternativa, pode utilizar
fdisk
para criar uma partição e, em seguida, utilizar essa partição parapvcreate
.Verifique se o PV foi adicionado à lista PV:
sudo pvs
Expanda o VG ao adicionar-lhe o novo PV:
sudo vgextend vgname /dev/newdisk
Verifique o novo tamanho da VG:
sudo vgs
Utilize
lsblk
para identificar o LV que precisa de ser redimensionado:sudo lsblk
Expanda o tamanho do LV ao utilizar
-r
para aumentar o sistema de ficheiros online:sudo lvextend -r -L +2G /dev/vgname/lvname
Verifique os novos tamanhos do LV e do sistema de ficheiros:
df -h /mountpoint
Importante
Quando o Azure Data Encryption é utilizado em configurações tradicionais de LVM, a camada encriptada é criada ao nível do LV e não ao nível do disco.
Neste momento, a camada encriptada é expandida para o novo disco. O disco de dados real não tem definições de encriptação ao nível da plataforma, pelo que o respetivo estado de encriptação não é atualizado.
Estas são algumas das razões pelas quais LVM-on-crypt é a abordagem recomendada.
Verifique as informações de encriptação no portal:
Para atualizar as definições de encriptação no disco, adicione um novo LV e ative a extensão na VM.
Adicione um novo LV, crie um sistema de ficheiros no mesmo e adicione-o a
/etc/fstab
.Defina a extensão de encriptação novamente. Desta vez, irá carimbar as definições de encriptação no novo disco de dados ao nível da plataforma. Eis um exemplo da CLI:
az vm encryption enable -g ${RGNAME} --name ${VMNAME} --disk-encryption-keyvault "<your-unique-keyvault-name>"
Verifique as informações de encriptação no portal:
Depois de as definições de encriptação serem atualizadas, pode eliminar o novo LV. Elimine também a entrada do /etc/fstab
e /etc/crypttab
que criou.
Siga estes passos para concluir a limpeza:
Desmontar o LV:
sudo umount /mountpoint
Feche a camada encriptada do volume:
sudo cryptsetup luksClose /dev/vgname/lvname
Elimine o LV:
sudo lvremove /dev/vgname/lvname
Expandir um volume LVM tradicional ao redimensionar um PV existente
Em alguns cenários, as suas limitações podem exigir que redimensione um disco existente. Eis como:
Identifique os discos encriptados:
sudo ls -l /dev/disk/azure/scsi1/
sudo lsblk -fs
Verifique as informações do PV:
sudo pvs
Os resultados na imagem mostram que todo o espaço em todos os PVs é atualmente utilizado.
Verifique as informações da VG:
sudo vgs sudo vgdisplay -v vgname
Verifique os tamanhos do disco. Pode utilizar
fdisk
oulsblk
para listar os tamanhos de unidade.for disk in `sudo ls -l /dev/disk/azure/scsi1/* | awk -F/ '{print $NF}'` ; do echo "sudo fdisk -l /dev/${disk} | grep ^Disk "; done | bash sudo lsblk -o "NAME,SIZE"
Aqui, identificámos que PVs estão associados a que LVs através de
lsblk -fs
. Pode identificar as associações ao executarlvdisplay
.sudo lvdisplay --maps VG/LV sudo lvdisplay --maps datavg/datalv1
Neste caso, as quatro unidades de dados fazem parte do mesmo VG e de um único LV. A configuração poderá ser diferente.
Verifique a utilização atual do sistema de ficheiros:
df -h /datalvm*
Redimensione os discos de dados ao seguir as instruções em Expandir um disco gerido do Azure. Pode utilizar o portal, a CLI ou o PowerShell.
Importante
Não pode redimensionar discos virtuais enquanto a VM estiver em execução. Desaloque a VM para este passo.
Inicie a VM e verifique os novos tamanhos com
fdisk
.for disk in `sudo ls -l /dev/disk/azure/scsi1/* | awk -F/ '{print $NF}'` ; do echo "sudo fdisk -l /dev/${disk} | grep ^Disk "; done | bash sudo lsblk -o "NAME,SIZE"
Neste caso,
/dev/sdd
foi redimensionado de 5 G para 20 G.Verifique o tamanho atual do PV:
sudo pvdisplay /dev/resizeddisk
Apesar de o disco ter sido redimensionado, o PV ainda tem o tamanho anterior.
Redimensionar o PV:
sudo pvresize /dev/resizeddisk
Verifique o tamanho do PV:
sudo pvdisplay /dev/resizeddisk
Aplique o mesmo procedimento para todos os discos que pretende redimensionar.
Verifique as informações da VG.
sudo vgdisplay vgname
A VG tem agora espaço suficiente para ser alocado aos LVs.
Redimensionar o LV:
sudo lvresize -r -L +5G vgname/lvname sudo lvresize -r -l +100%FREE /dev/datavg/datalv01
Verifique o tamanho do sistema de ficheiros:
df -h /datalvm2
Expandir um volume LVM-on-crypt ao adicionar um novo PV
Também pode expandir um volume LVM-on-crypt ao adicionar um novo PV. Este método segue de perto os passos em Configurar LVM e RAID em dispositivos encriptados. Veja as secções que explicam como adicionar um novo disco e configurá-lo numa configuração LVM-on-crypt.
Pode utilizar este método para adicionar espaço a um LV existente. Em alternativa, pode criar novos VGs ou LVs.
Verifique o tamanho atual da VG:
sudo vgdisplay vgname
Verifique o tamanho do sistema de ficheiros e do LV que pretende expandir:
sudo lvdisplay /dev/vgname/lvname
df -h mountpoint
Adicione um novo disco de dados à VM e identifique-o.
Antes de adicionar o novo disco, verifique os discos:
sudo fdisk -l | egrep ^"Disk /"
Eis outra forma de verificar os discos antes de adicionar o novo disco:
sudo lsblk
Para adicionar o novo disco, pode utilizar o PowerShell, a CLI do Azure ou o portal do Azure. Para obter mais informações, veja Anexar um disco de dados a uma VM do Linux.
O esquema de nomes de kernel aplica-se ao dispositivo adicionado recentemente. Normalmente, é atribuída a letra disponível seguinte a uma nova unidade. Neste caso, o disco adicionado é
sdd
.Verifique os discos para se certificar de que o novo disco foi adicionado:
sudo fdisk -l | egrep ^"Disk /"
sudo lsblk
Crie um sistema de ficheiros sobre o disco adicionado recentemente. Corresponda o disco aos dispositivos ligados em
/dev/disk/azure/scsi1/
.sudo ls -la /dev/disk/azure/scsi1/
sudo mkfs.ext4 /dev/disk/azure/scsi1/${disk}
Crie um ponto de montagem temporário para o novo disco adicionado:
newmount=/data4 sudo mkdir ${newmount}
Adicione o sistema de ficheiros criado recentemente ao
/etc/fstab
.sudo blkid /dev/disk/azure/scsi1/lun4| awk -F\" '{print "UUID="$2" '${newmount}' "$4" defaults,nofail 0 0"}' >> /etc/fstab
Monte o sistema de ficheiros recém-criado:
sudo mount -a
Verifique se o novo sistema de ficheiros está montado:
df -h
sudo lsblk
Reinicie a encriptação que iniciou anteriormente para unidades de dados.
Dica
Para LVM-on-crypt, recomendamos que utilize
EncryptFormatAll
. Caso contrário, poderá ver uma encriptação dupla enquanto define discos adicionais.Para obter mais informações, veja Configurar LVM e RAID em dispositivos encriptados.
Eis um exemplo:
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
Quando a encriptação for concluída, verá uma camada cripta no disco adicionado recentemente:
sudo lsblk
Desmontar a camada encriptada do novo disco:
sudo umount ${newmount}
Verifique as informações atuais do PV:
sudo pvs
Crie um PV sobre a camada encriptada do disco. Escolha o nome do dispositivo do comando anterior
lsblk
. Adicione um/dev/
mapeador à frente do nome do dispositivo para criar o PV:sudo pvcreate /dev/mapper/mapperdevicename
Verá um aviso sobre como limpar a assinatura atual
ext4 fs
. Este aviso é esperado. Responda a esta pergunta comy
.Verifique se o novo PV foi adicionado à configuração do LVM:
sudo pvs
Adicione o novo PV à VG que precisa de aumentar.
sudo vgextend vgname /dev/mapper/nameofhenewpv
Verifique o novo tamanho e espaço livre da VG:
sudo vgdisplay vgname
Tenha em atenção o aumento da
Total PE
contagem e doFree PE / Size
.Aumente o tamanho do LV e do sistema de ficheiros. Utilize a opção
-r
emlvextend
. Neste exemplo, estamos a adicionar o espaço total disponível na VG ao LV especificado.sudo lvextend -r -l +100%FREE /dev/vgname/lvname
Siga os passos seguintes para verificar as alterações.
Verifique o tamanho do LV:
sudo lvdisplay /dev/vgname/lvname
Verifique o novo tamanho do sistema de ficheiros:
df -h /mountpoint
Verifique se a camada LVM está sobre a camada encriptada:
sudo lsblk
Se utilizar
lsblk
sem opções, verá os pontos de montagem várias vezes. O comando ordena por dispositivo e LVs.Poderá querer utilizar
lsblk -fs
. Neste comando,-fs
inverte a sequência de ordenação para que os pontos de montagem sejam apresentados uma vez. Os discos são apresentados várias vezes.sudo lsblk -fs
Expandir um LVM num volume cript ao redimensionar um PV existente
Identifique os discos encriptados:
sudo lsblk
sudo lsblk -s
Verifique as informações de PV:
sudo pvs
Verifique as informações da VG:
sudo vgs
Verifique as informações do LV:
sudo lvs
Verifique a utilização do sistema de ficheiros:
df -h /mountpoint(s)
Verifique os tamanhos dos discos:
sudo fdisk sudo fdisk -l | egrep ^"Disk /" sudo lsblk
Redimensione o disco de dados. Pode utilizar o portal, a CLI ou o PowerShell. Para obter mais informações, veja a secção de redimensionamento do disco em Expandir discos rígidos virtuais numa VM do Linux.
Importante
Não pode redimensionar discos virtuais enquanto a VM estiver em execução. Desaloque a VM para este passo.
Verifique os tamanhos dos discos:
sudo fdisk sudo fdisk -l | egrep ^"Disk /" sudo lsblk
Neste caso, ambos os discos foram redimensionados de 2 GB para 4 GB. Mas o tamanho do sistema de ficheiros, LV e PV permanece o mesmo.
Verifique o tamanho atual do PV. Lembre-se de que no LVM-on-crypt, o PV é o
/dev/mapper/
dispositivo, não o/dev/sd*
dispositivo.sudo pvdisplay /dev/mapper/devicemappername
Redimensionar o PV:
sudo pvresize /dev/mapper/devicemappername
Verifique o novo tamanho do PV:
sudo pvdisplay /dev/mapper/devicemappername
Redimensione a camada encriptada no PV:
sudo cryptsetup resize /dev/mapper/devicemappername
Aplique o mesmo procedimento para todos os discos que pretende redimensionar.
Verifique as informações da VG:
sudo vgdisplay vgname
A VG tem agora espaço suficiente para ser alocado aos LVs.
Verifique as informações do LV:
sudo lvdisplay vgname/lvname
Verifique a utilização do sistema de ficheiros:
df -h /mountpoint
Redimensionar o LV:
sudo lvresize -r -L +2G /dev/vgname/lvname
Aqui, utilizamos a opção
-r
para redimensionar também o sistema de ficheiros.Verifique as informações do LV:
sudo lvdisplay vgname/lvname
Verifique a utilização do sistema de ficheiros:
df -h /mountpoint
Aplique o mesmo procedimento de redimensionamento a qualquer outro LV que o necessite.