Configurar o LVM numa VM do Linux no Azure

Este documento irá discutir como configurar o Gestor de Volumes Lógicos (LVM) na sua máquina virtual do Azure. O LVM pode ser utilizado no disco do SO ou nos discos de dados nas VMs do Azure. No entanto, por predefinição, a maioria das imagens da cloud não terá o LVM configurado no disco do SO. Os passos abaixo irão focar-se na configuração do LVM para os discos de dados.

Volumes lógicos lineares vs. listrados

O LVM pode ser utilizado para combinar vários discos físicos num único volume de armazenamento. Por predefinição, o LVM irá normalmente criar volumes lógicos lineares, o que significa que o armazenamento físico é concatenado em conjunto. Neste caso, normalmente, as operações de leitura/escrita só serão enviadas para um único disco. Por outro lado, também podemos criar volumes lógicos listrados onde as leituras e as escritas são distribuídas por vários discos contidos no grupo de volumes (semelhante ao RAID0). Por motivos de desempenho, é provável que queira riscar os volumes lógicos para que as leituras e escritas utilizem todos os discos de dados anexados.

Este documento irá descrever como combinar vários discos de dados num único grupo de volumes e, em seguida, criar um volume lógico listrado. Os passos abaixo são generalizados para trabalhar com a maioria das distribuições. Na maioria dos casos, os utilitários e fluxos de trabalho para gerir LVM no Azure não são fundamentalmente diferentes dos outros ambientes. Como habitualmente, consulte também o fornecedor do Linux para obter documentação e melhores práticas para utilizar o LVM com a sua distribuição específica.

Anexar discos de dados

Normalmente, um deles irá querer começar com dois ou mais discos de dados vazios ao utilizar o LVM. Com base nas suas necessidades de E/S, pode optar por anexar discos armazenados no nosso Armazenamento Standard, com até 500 E/S por disco ou o nosso armazenamento Premium com até 5000 E/S por disco. Este artigo não irá entrar em detalhes sobre como aprovisionar e anexar discos de dados a uma máquina virtual do Linux. Veja o artigo do Microsoft Azure anexar um disco para obter instruções detalhadas sobre como anexar um disco de dados vazio a uma máquina virtual do Linux no Azure.

Instalar os utilitários LVM

  • Ubuntu

    sudo apt-get update
    sudo apt-get install lvm2
    
  • RHEL, CentOS & Oracle Linux

    sudo yum install lvm2
    
  • SLES 12 e openSUSE

    sudo zypper install lvm2
    
  • SLES 11

    sudo zypper install lvm2
    

    No SLES11, também tem de editar /etc/sysconfig/lvm e definir LVM_ACTIVATED_ON_DISCOVERED como "ativar":

    LVM_ACTIVATED_ON_DISCOVERED="enable" 
    

Configurar LVM

Neste guia, vamos presumir que anexou três discos de dados, que iremos referir como /dev/sdc, /dev/sdd e /dev/sde. Estes caminhos podem não corresponder aos nomes dos caminhos do disco na VM. Pode executar o comando "sudo fdisk -l" ou semelhante para listar os discos disponíveis.

  1. Preparar os volumes físicos:

    sudo pvcreate /dev/sd[cde]
    Physical volume "/dev/sdc" successfully created
    Physical volume "/dev/sdd" successfully created
    Physical volume "/dev/sde" successfully created
    
  2. Criar um grupo de volumes. Neste exemplo, estamos a chamar o grupo data-vg01de volumes :

    sudo vgcreate data-vg01 /dev/sd[cde]
    Volume group "data-vg01" successfully created
    
  3. Crie os volumes lógicos. O comando abaixo criaremos um único volume lógico chamado data-lv01 para abranger todo o grupo de volumes, mas tenha em atenção que também é viável criar vários volumes lógicos no grupo de volumes.

    sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01
    Logical volume "data-lv01" created.
    
  4. Formatar o volume lógico

    sudo mkfs -t ext4 /dev/data-vg01/data-lv01
    

    Nota

    Com o SLES11, utilize -t ext3 em vez de ext4. O SLES11 só suporta o acesso só de leitura a sistemas de ficheiros ext4.

Adicionar o novo sistema de ficheiros a /etc/fstab

Importante

A edição imprópria do ficheiro /etc/fstab poderá resultar num sistema não inicializável. Se não tiver a certeza, consulte a documentação de distribuição para obter mais informações sobre como editar corretamente este ficheiro. Recomenda-se também que seja criada uma cópia de segurança do /etc/fstab ficheiro antes de editar.

  1. Crie o ponto de montagem pretendido para o seu novo sistema de ficheiros, por exemplo:

    sudo mkdir /data
    
  2. Localizar o caminho do volume lógico

    lvdisplay
    --- Logical volume ---
    LV Path                /dev/data-vg01/data-lv01
    ....
    
  3. Abra /etc/fstab num editor de texto e adicione uma entrada para o novo sistema de ficheiros, por exemplo:

    /dev/data-vg01/data-lv01  /data  ext4  defaults  0  2
    

    Em seguida, guarde e feche /etc/fstab.

  4. Teste se a /etc/fstab entrada está correta:

    sudo mount -a
    

    Se este comando resultar numa mensagem de erro, verifique a sintaxe no /etc/fstab ficheiro.

    Em seguida, execute o mount comando para garantir que o sistema de ficheiros está montado:

    mount
    ......
    /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)
    
  5. (Opcional) Parâmetros de arranque de segurança pós-falha no /etc/fstab

    Muitas distribuições incluem os nobootwait parâmetros ou nofail de montagem que podem ser adicionados ao /etc/fstab ficheiro. Estes parâmetros permitem falhas ao montar um sistema de ficheiros específico e permitem que o sistema Linux continue a arrancar mesmo que não seja possível montar corretamente o sistema de ficheiros RAID. Veja a documentação da sua distribuição para obter mais informações sobre estes parâmetros.

    Exemplo (Ubuntu):

    /dev/data-vg01/data-lv01  /data  ext4  defaults,nobootwait  0  2
    

Suporte TRIM/UNMAP

Alguns kernels do Linux suportam operações TRIM/UNMAP para eliminar blocos não utilizados no disco. Estas operações são essencialmente úteis no armazenamento padrão para informar o Azure de que as páginas eliminadas já não são válidas e podem ser eliminadas. Eliminar páginas pode poupar custos se criar ficheiros grandes e, em seguida, eliminá-los.

Existem duas formas de ativar o suporte do TRIM na VM do Linux. Como habitualmente, consulte a sua distribuição para obter a abordagem recomendada:

  • Utilize a opção discard de montagem no /etc/fstab, por exemplo:

    /dev/data-vg01/data-lv01  /data  ext4  defaults,discard  0  2
    
  • Em alguns casos, a opção discard pode ter implicações de desempenho. Em alternativa, pode executar o comando manualmente a fstrim partir da linha de comandos ou adicioná-lo ao crontab para ser executado regularmente:

    Ubuntu

    # sudo apt-get install util-linux
    # sudo fstrim /datadrive
    

    RHEL, CentOS & Oracle Linux

    # sudo yum install util-linux
    # sudo fstrim /datadrive