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.

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:
- Um ou mais discos rígidos inteiros ou partições são configurados como volumes físicos (PVs).
- A volume group (VG) is created using one or more physical volumes. You can think of a volume group as a single storage unit.
- 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:

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

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

É 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

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

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

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/