Um recurso, tradicionalmente, adotado por administradores de sistemas Linux, para gerenciar partições no disco, é usar o Gerenciador de Volume Lógico (LVM).
Ele é um método para alocar espaço do disco rígido, em volumes lógicos, que podem ser facilmente redimensionados; diferentemente das partições salvas nas tabelas de partições.
Uma das grandes vantagens do uso do LVM é poder criar uma camada lógica sobre um disco rígido ou conjunto de discos e ter condições de de criar, excluir, redimensionar e expandir partições no disco sem precisar desligar o computador ou mover dados.
Lembre-se de que toda operação com partições é perigosa, por melhor que seja a técnica. Tenha sempre um backup de seus arquivos. Esta operação é por sua conta e risco!É pré-requisito, importante, que o usuário tenha conhecimentos intermediários/avançados das ferramentas de manipulação de disco no Linux.
VANTAGENS
Esse técnica é ótima não apenas para servidores, mas também para ambientes desktops! Por escrever suas próprias informações em separado e manter o controle sobre a localização das partições, quais dispositivos são partes delas e o tamanho de cada uma, o LVM permite, caso você fique sem espaço, expandir a partição desejada e pronto. Assim você terá mais espaço disponível, sem complicações. Resumindo, você nunca mais vai ficar sem espaço!!
Isso ocorre, pois o método tradicional faz a alocação de todo espaço físico ao tamanho da partição do disco, o que traz muito trabalho quando o espaço esgota. Tendo isso em vista, em resumo segue lista do que o LVM pode solucionar:
- Uso eficaz de disco, principalmente quando há pouco espaço para criação de partições independentes;
- Permite aumentar/diminuir dinamicamente o tamanho das partições sem reparticionamento do disco rígido usando o espaço livre em outras partições ou utilizando o espaço livre reservado para o uso do LVM;
- Permite selecionar o tamanho do cluster de armazenamento e a forma que eles são acessados entre os discos, possibilitando garantir a escolha da melhor opção dependendo da forma que os dados serão manipulados pelo servidor;
- Permite snapshots dos volumes do disco rígido, onde um “snapshot” é uma imagem do volume lógico, onde o LVM “pára” o tempo do volume, deixando-o intacto para trabalhar enquanto o volume lógico “real” continua trabalhando e sendo modificado;
- Permite um volume lógico ter seu espaço dividido em 3 ou mais HDs, mas para o sistema operacional vai parecer como se fosse apenas um dispositivo
POR QUE DEVO USAR O LVM ?!
Supondo que você comprou um HD de 600GB. Na instalação do Linux, você particionou o disco da seguinte forma:
PARTIÇÃO TAMANHO /boot ---------------------- 800MB / ---------------------- 400GB /home ---------------------- 199GB
Com o tempo, a partição /home topou com seus arquivos pessoais. Em um cenário sem LVM (partição de disco física), seria necessário formatar e refazer as partições para colocar mais espaço no /home, ou comprar um novo HD maior e refazer tudo, depois copiar os dados.
Com o LVM, além de redimensionar estas partições de forma transparente para o SO; você pode adicionar um um novo HD em um volume lógico já criado, sem precisar formatar o sistema.
ESTRUTURA DO LVM
Existem 3 camadas do LVM, que são agrupadas da seguinte forma:
- PV (Phisical Volume) – Corresponde a todo o disco rígido/partição ou dispositivo de bloco que será adicionado ao LVM. Por exemplo: /dev/sda1, /dev/sda2
- VG (Volume Group) – Corresponde ao grupo de volumes físicos que fazem parte do LVM, onde podem ser vários HD’s. Do grupo de volume são alocados os espaços para criação dos volumes lógicos. Por exemplo: /dev/lvmdisk0
- LV (Logical Volume) – Corresponde a partição lógica criada pelo LVM para gravação de dados. Ao invés de ser identificada por nomes de dispositivos, podem ser usados nomes comuns para se referir as partições (tmp,usr,etc.). O Volume lógico é a área onde o sistema de arquivo é criado para gravação de dados, é equivalente a partição em um sistema SEM LVM só que lógica ao invés de física.
INSTALANDO
Desde das versões do kernel 2.6, o LVM possui suporte. A maioria das distribuições Linux também incluem os pacotes necessários para o funcionamento do mesmo, o Fedora por exemplo. Ou seja, na grande maioria dos casos, seu sistema deverá estar pronto para utilizar o LVM. Por este motivo, tomo como base a instalação em distros derivadas do Debian.
Esse ambiente, mostrado abaixo, somente se enquadra em uma situação onde existe uma partição física reservada para a instalação do LVM – caso contrário seus dados serão sobrescritos no momento da criação do grupo lógico (VG). É bastante indicado para usuários que já possuem seu sistema instalado e partições criadas disponíveis.
Caso você esteja pensando em instalar o LVM no momento da instalação, basta selecionar uma distro que possue este suporte ?
Sendo assim, para instalar a ferramenta “lvm2”, no Ubuntu, execute o comando:
MÃO NA MASSA
No exemplo a seguir, existe uma máquina virtual com duas partições físicas (SDA = sda1 + sda3). Assim, será criado um grupo lógico na partição “sda3”, com tamanho máximo de 3GB.
Primeiramente, para acompanhar a listagem das partições execute o comando “fdisk -l”:
Disco /dev/sda: 21.5 GB, 21474836480 bytes 255 cabeças, 63 setores/trilhas, 2610 cilindros, total de 41943040 setores Unidades = setores de 1 * 512 = 512 bytes Tamanho do setor (lógico/físico): 512 bytes / 512 bytes Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes Identificador do disco: 0x0009eae8 Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 * 2048 30134271 15066112 83 Linux /dev/sda2 38537214 41940991 1701889 5 Estendida /dev/sda3 30134272 38535167 4200448 83 Linux /dev/sda5 38537216 41940991 1701888 82 Linux swap / Solaris
Depois de detectar qual partição você irá trabalhar, desmonte-a executando o comando abaixo:
Finalmente, podemos dá inicio a criação do LVM. Execute o comando “pvcreate”, responsável por adicionar a partição ao pool lógico do LVM :
Physical volume "/dev/sda3" successfully created
Depois, para criar o grupo de volume (VG) chamado vgpool-teste, é preciso executar o comando “vgcreate”:
Volume group "vgpool-teste" successfully created
Agora que foi criado um volume físico (PV) e um grupo de volume (VG), é hora de criar um volume lógico (LV). Vamos criar uma chamada log-1, associando ao VG criado e atribuindo o tamanho desse volume lógico (LV), neste caso 1GB (não podendo ultrapassar o tamanho máximo de 3GB):
Logical volume "log-1" created
Seguindo, esse pensamento ainda restam 2GB para serem aproveitados ;-). Então, vamos criar mais um volume lógico de 2GB; chamado log-2:
Logical volume "log-2" created
PRONTO! Agora temos duas partições (volumes lógicos – LV) novas que podem ser formatadas como se fossem partições comuns.
FORMATAÇÃO
Agora que temos nossas duas partições, podemos formatá-las como qualquer outro dispositivo físico. Para tal, execute os comandos abaixo para formatá-las:
mke2fs 1.41.1 (01-Sep-2008)
Filesystem label=linux
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Por fim, seguindo essa lógica; esses volumes lógicos (LV) também podem ser montados como qualquer outro dispositivo.
Basta, executar o comando “mount”:
COMO SABER SE TUDO DEU CERTO ?!
- Verificar Volume Físico (PV) – Executar o comando “pvdisplay”
- Verificar Grupo de Volume (VG) – Executar o comando “vgdisplay”
- Verificar Volume Lógico (LV) – Executar o comando “lvdisplay”
É importante que execute os comandos acima para saber se tudo ocorreu bem!
UTILIZANDO OS BENEFÍCIOS DO LVM
# Adicionando um novo disco ao Volume de Grupo (VG)
Hipoteticamente, depois de instalar um novo HD de 8GB (mapeado como /dev/sde), você deve criar uma nova partição dentro deste HD com o “fdisk”. Depois executar o LVM, adicionando o /dev/sde1 ao LVM com o comando “pvcreate” e depois utilizar o comando “vgextend” para adicionar esta nova partição ao meu grupo de volume (VG):
# Expandir o tamanho de um volume lógico
Para aumentar, o volume lógico, para mais 4GB execute o comando lvextend:
Contudo, para obter êxito é preciso redefinir o sistema de arquivos:
REMOVENDO O LVM
Primeiramente, você precisa desmontar o volume:
E seguir os seguintes passos (comandos):