LFCS: Como gerenciar e criar LVM usando os comandos vgcreate, lvcreate e lvextend – Parte 11

Devido às mudanças nos requisitos do exame LFCS, efetivo em 2 de fevereiro de 2016, estamos adicionando os tópicos necessários à série LFCS publicada aqui. Para se preparar para este exame, é altamente recomendado que você também utilize a série LFCE.

LFCS: Manage LVM and Create LVM Partition – Part 11

Uma das decisões mais importantes durante a instalação de um sistema Linux é a quantidade de espaço de armazenamento a ser alocada para arquivos do sistema, diretórios pessoais e outros. Se cometer um erro nesse ponto, expandir uma partição que ficou sem espaço pode ser oneroso e um pouco arriscado.

Gerenciamento de Volumes Lógicos (também conhecido como LVM), que se tornou padrão na instalação da maioria (se não de todas) as distribuições Linux, possui inúmeras vantagens sobre o gerenciamento de partição tradicional. Talvez a característica mais distinta do LVM seja permitir divisões lógicas que podem ser redimensionadas (diminuídas ou aumentadas) à vontade sem muitos problemas.

A estrutura do LVM consiste em:

  1. Um ou mais discos rígidos inteiros ou partições são configurados como volumes físicos (PVs).
  2. A volume group (VG) is created using one or more physical volumes. You can think of a volume group as a single storage unit.
  3. Múltiplos volumes lógicos podem então ser criados em um grupo de volumes. Cada volume lógico é de certa forma equivalente a uma partição tradicional – com a vantagem de que pode ser redimensionado à vontade, como mencionamos anteriormente.

Neste artigo, usaremos três discos de 8 GB cada (/dev/sdb, /dev/sdc e /dev/sdd) para criar três volumes físicos. Você pode criar os PVs diretamente no dispositivo ou particioná-lo primeiro.

Embora tenhamos optado pelo primeiro método, se decidir pelo segundo (conforme explicado em Parte 4 – Criar Partições e Sistemas de Arquivos no Linux desta série), certifique-se de configurar cada partição como tipo 8e.

Criando Volumes Físicos, Grupos de Volumes e Volumes Lógicos

Para criar volumes físicos em cima de /dev/sdb, /dev/sdc e /dev/sdd, faça:

# pvcreate /dev/sdb /dev/sdc /dev/sdd

Você pode listar os PVs recém-criados com:

# pvs

e obter informações detalhadas sobre cada PV com:

# pvdisplay /dev/sdX

(onde X é b, c ou d)

Se você omitir /dev/sdX como parâmetro, obterá informações sobre todos os PVs.

Para criar um grupo de volumes chamado vg00 usando /dev/sdb e /dev/sdc (vamos deixar /dev/sdd para depois para ilustrar a possibilidade de adicionar outros dispositivos para expandir a capacidade de armazenamento quando necessário):

# vgcreate vg00 /dev/sdb /dev/sdc

Assim como no caso dos volumes físicos, você também pode visualizar informações sobre este grupo de volumes emitindo:

# vgdisplay vg00

Como o vg00 é formado por dois discos de 8 GB, ele aparecerá como um único drive de 16 GB:

List LVM Volume Groups

Ao criar volumes lógicos, a distribuição do espaço deve levar em consideração as necessidades atuais e futuras. É considerada uma boa prática nomear cada volume lógico de acordo com o seu uso pretendido.

Por exemplo, vamos criar dois LVs com os nomes vol_projects (10 GB) e vol_backups (espaço restante), que poderemos usar posteriormente para armazenar documentação de projetos e backups do sistema, respectivamente.

A opção -n é usada para indicar um nome para o LV, enquanto -L define um tamanho fixo e -l (letra L minúscula) é usado para indicar uma porcentagem do espaço restante no VG contêiner.

# lvcreate -n vol_projects -L 10G vg00
# lvcreate -n vol_backups -l 100%FREE vg00

Como antes, você pode visualizar a lista de LVs e informações básicas com:

# lvs

e informações detalhadas com

# lvdisplay

Para visualizar informações sobre um único LV, use lvdisplay com os parâmetros VG e LV, da seguinte forma:

# lvdisplay vg00/vol_projects
List Logical Volume

Na imagem acima, podemos ver que os LVs foram criados como dispositivos de armazenamento (consulte a linha Caminho do LV). Antes que cada volume lógico possa ser usado, precisamos criar um sistema de arquivos em cima dele.

Vamos usar o ext4 como exemplo aqui, pois nos permite tanto aumentar quanto reduzir o tamanho de cada LV (em oposição ao xfs, que só permite aumentar o tamanho):

# mkfs.ext4 /dev/vg00/vol_projects
# mkfs.ext4 /dev/vg00/vol_backups

Na próxima seção, explicaremos como redimensionar volumes lógicos e adicionar espaço de armazenamento físico adicional quando houver necessidade.

Redimensionamento de Volumes Lógicos e Extensão de Grupos de Volumes

Agora, imagine o seguinte cenário. Você está começando a ficar sem espaço em vol_backups, enquanto tem muito espaço disponível em vol_projects. Devido à natureza do LVM, podemos facilmente reduzir o tamanho do último (digamos 2,5 GB) e alocá-lo para o primeiro, redimensionando cada sistema de arquivos ao mesmo tempo.

Felizmente, isso é tão fácil quanto fazer:

# lvreduce -L -2.5G -r /dev/vg00/vol_projects
# lvextend -l +100%FREE -r /dev/vg00/vol_backups
Resize Reduce Logical Volume and Volume Group

É importante incluir o sinal de menos (-) ou mais (+) ao redimensionar um volume lógico. Caso contrário, você estará definindo um tamanho fixo para o LV em vez de redimensioná-lo.

Pode acontecer de você chegar a um ponto em que redimensionar volumes lógicos não consegue mais atender às suas necessidades de armazenamento e você precisa comprar um dispositivo de armazenamento adicional. Para simplificar, você precisará de outro disco. Vamos simular essa situação adicionando o PV restante de nossa configuração inicial (/dev/sdd).

Para adicionar /dev/sdd ao vg00, faça

# vgextend vg00 /dev/sdd

Se você executar vgdisplay vg00 antes e depois do comando anterior, verá o aumento no tamanho do VG:

# vgdisplay vg00
Check Volume Group Disk Size

Agora você pode usar o espaço recém-adicionado para redimensionar os LVs existentes de acordo com suas necessidades, ou criar novos conforme necessário.

Montagem de Volumes Lógicos na Inicialização e sob Demanda

Claro, não faria sentido criar volumes lógicos se não fossemos realmente usá-los! Para identificar melhor um volume lógico, precisaremos descobrir qual é o seu UUID (um atributo inalterável que identifica de forma única um dispositivo de armazenamento formatado).

Para fazer isso, use blkid seguido do caminho para cada dispositivo:

# blkid /dev/vg00/vol_projects
# blkid /dev/vg00/vol_backups
Find Logical Volume UUID

Crie pontos de montagem para cada LV:

# mkdir /home/projects
# mkdir /home/backups

e insira as entradas correspondentes em /etc/fstab (certifique-se de usar os UUIDs obtidos anteriormente):

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects	ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4	defaults 0 0

Em seguida, salve as alterações e monte os LVs:

# mount -a
# mount | grep home
Mount Logical Volumes on Linux

Quando se trata de realmente usar os LVs, você precisará atribuir permissões adequadas ugo+rwx conforme explicado em Parte 8 – Gerenciar Usuários e Grupos no Linux desta série.

Resumo

Neste artigo, apresentamos a Gerenciamento de Volume Lógico, uma ferramenta versátil para gerenciar dispositivos de armazenamento que oferece escalabilidade. Quando combinado com RAID (que explicamos na Parte 6 – Criar e Gerenciar RAID no Linux desta série), você pode desfrutar não apenas de escalabilidade (fornecida pelo LVM) mas também de redundância (oferecida pelo RAID).

Neste tipo de configuração, você geralmente encontrará o LVM em cima do RAID, ou seja, configure o RAID primeiro e depois configure o LVM em cima dele.

Se tiver dúvidas sobre este artigo, ou sugestões para melhorá-lo, sinta-se à vontade para nos contatar usando o formulário de comentários abaixo.

Source:
https://www.tecmint.com/manage-and-create-lvm-parition-using-vgcreate-lvcreate-and-lvextend/