LVM (Logical Volume Manager)

Publicado por Evandro Figueiredo de Oliveira em 03/05/2013

[ Hits: 73.420 ]

 


LVM (Logical Volume Manager)



Introdução

O LVM (Logical Volume Manager) é um recurso incluído no kernel Linux a partir da versão 2.4, que cria uma camada de abstração entre o sistema operacional e os HDs.

Imagine que, no LVM, o sistema não vê HDs e partições, mas um ou mais volumes lógicos. Cada volume se comporta como se fosse uma partição, que é formatada e montada da forma usual.

Estes volumes são agrupados em um grupo de volumes lógicos (Logical Volume Group) que se comporta de forma similar a um HD.

O grupo de volumes lógicos pode combinar o espaço de vários HDs e ser modificados conforme necessário, incorporando mais HDs. Os volumes lógicos dentro dele, também podem ser redimensionados livremente, conforme for necessário.

Exemplo: se você precisa de mais espaço dentro do volume referente à pasta "/home", por exemplo, você poderia reduzir o tamanho de um dos outros volumes do sistema (que estivesse com espaço vago*) e aumentar o tamanho do volume referente ao /home, tudo isso com o servidor operante.

* Dica: não reduzir para um tamanho menor do que esteja em uso, caso isso aconteça, você perderá seus dados.
Linux: LVM (Logical Volume Manager)

Logical Volume Manager

É importante enfatizar que o LVM é apenas uma mudança na forma como o sistema acessa os discos, ele não é um substituto para o RAID.

No LVM, você pode agrupar vários HDs em um único grupo de volumes lógicos, mas se um dos HDs apresentar defeito, o servidor ficará inoperante e você perderá os dados armazenados no disco afetado; diferente do RAID, onde você pode sacrificar parte do espaço para ter uma camada de redundância.

Baseado em: Entendendo o LVM - Dicas

Instalação (PV, GV, LV)

No ambiente para esta dica, digamos que vamos criar um LVM adicionando 100 GB. E este disco será o "/dev/sdb1" (este "device/partição" é apenas um exemplo, poderia ser "sdc1", "sdd1", etc).

Vamos instalar o LVM2, o software que irá gerenciar os discos LVM.

Em distribuições baseadas no Debian, execute:

# apt-get install lvm2

Inserindo o disco ao LVM:: Physical Volumes (PV):

# pvcreate /dev/sdb1

Este comando deve retornar:
Physical volume "/dev/sdb1"    successfully created

Para visualizar o disco adicionado, usamos o comando pv ou pvscan:

# pvscan
PV /dev/sdb1                   lvm2 [100,00 GiB]
Total: 1 [100,00 GiB] / in use: 0 [0   ] / in no VG: 1 [100,00 GiB]


# pvs
  PV                  VG        Fmt       Attr       PSize          PFree
/dev/sdb1            lvm2        a-      100,00g    100,00g


Acima, podemos observar que o PV lista o device (/dev/sdb1), mas ainda é preciso criar o VG (Volume Group).

Volume Group (VG)

É preciso dar um nome para o VG, com o comando:

# vgcreate nome_do_vg pv_device

Vamos criá-lo:

# vgcreate dados /dev/sdb1
Volume group "dados" successfully created


Logical Volumes (LV)

# lvcreate -L size -n nome_do_lv nome_do_vg

Onde:
  • -L :: Tamanho do volume logical
  • -n :: Nome do LV

Exemplo:

# lvcreate -L 100G -n cliente_x dados
Rounding up size to full physical extent 100,00 GiB
Logical volume "cliente_x"  created


Para visualizar o LV, usado o lvs ou lvscan:

# lvs
LV             VG        Attr   LSize
cliente_x     dados     -wi-a    100g


Com o lvscan podemos ver ser o LV esta ativo ou não:

# lvscan
ACTIVE            "/dev/dados/cliente_x" [100 GiB] inherit


Após a criação do PV, VG e LV, precisamos formatar este disco novo:

# mkfs.ext4 /dev/samba_vg/samba_lv

Vamos montar o LV criado no servidor:

# mkdir /Arquivos
# mount /dev/mapper/dados-cliente_x /Arquivos


Visualizar o conteúdo dos sistemas de arquivos:

# df -h
Sist. Arq.                   Size  Used  Avail  Use%   Mounted on
/dev/sda1                    77G   800M    73G    2%   /
tmpfs                        61M      0    61M    0%   /lib/init/rw
udev                         57M   164K    57M    1%   /dev
tmpfs                        61M      0    61M    0%   /dev/shm
/dev/mapper/dados-cliente_x  100G    0M   100G    0%   /Arquivos


fstab

Configurando o fstab para quando iniciar a máquina, o volume já estiver montado.

Acrescentar na última linha do arquivo "/etc/fstab":

/dev/mapper/dados-cliente_x  /Arquivos   ext4    defaults    0    0


Exemplo:

# /etc/fstab: static file system information.
#
# Use "blkid" to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system>                              <mount point>      <type>         <options>         <dump>    <pass>
proc                                            /proc            proc          defaults             0        0
# / was on /dev/sda1 during installation
UUID=31688aa8-a395-498a-bb10-524839a97665       /                ext3          errors=remount-ro    0        1
# swap was on /dev/sda5 during installation
UUID=e4e960af-85b4-4453-96be-fb6590edbb95       none             swap          sw                   0        0
/dev/scd0                                       /media/cdrom0    udf,iso9660   user,noauto          0        0
/dev/mapper/dados-cliente_x                     /Arquivos        ext4          defaults             0        0


O LV (/dev/mappar/dados-cliente_x) será montado em "/Arquivos", e o sistema de arquivos está no formato ext4.

Valeu pessoal, espero ter ajudado.

Dica também publicada em: LVM (Logical Virtual Manager) « evandrofigueiredo.valogexpress.com.br

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Plotter de recorte no Linux

Instalando Microsoft Office 2007 no Fedora

Resumo para prova LPI 102

Instalação do VMWare Server no Debian 5

Instalar VirtualBox no CentOS 5

  

Comentários
[1] Comentário enviado por phoemur em 03/05/2013 - 23:38h

muito boa a sua dica

[2] Comentário enviado por xgrind em 04/05/2013 - 12:32h

Tenho 4 partições: / , /home, swap e ntfs. As 4 estão como partição primária, mas gostaria de redimensionar a / porque não sei qual motivo deixei 40Gb ;x

Quando criei as partições, eu não criei como LVM. Tem como eu alterar agora? Será que perco as coisas que tenho?

[3] Comentário enviado por vandomen em 05/05/2013 - 17:19h

Olá xgrind, infelizmente não conheço uma forma de você redimencionar suas partições sem ter criado o LVM na instalação do Linux. Isto já aconteceu comigo, o que fiz foi adicionar um disco, e montei o meu /var no meu disco novo, isto me liberou 50% do / .. foi uma saída. Ou então você pode apagar alguns logs para liberar espaço, ou usar o apt-get clean se for Debian/Ubuntu para limpar o diretório de download (/var/cache/apt/archives). Flw, boa sorte.

[4] Comentário enviado por daniel goes em 15/08/2013 - 19:08h

Estou configurando um servidor com 1Tera de HD (Raid1), fiz a instalação e configuração sem usar o LVM, usei ext4. Uso o CentOS6.4. É recomendado excluir e refazer usando o LVM?

[5] Comentário enviado por vandomen em 15/08/2013 - 19:37h

Ola Daniel Goes, em ambiente corporativo, LVM mesmo que você não use para gerenciar os volumes, É BOM TER! Por quê assim, você vai atender com falicidade a demanda futura, principalmente se seu Server for um Filers (servidor de arquivos). Se for possível, você reinstalar, eu faria isso. Abraços

[6] Comentário enviado por yros em 30/09/2013 - 21:56h

Muito bom brother ... parabens mano .. sucesso ...

[7] Comentário enviado por sampaloid em 23/01/2014 - 09:41h

Saudações! excelente how to!

Mas preciso de uma ajudinha ... tenho apenas acesso remoto e preciso saber quais são os discos fisicos... e se estão ou não em raid... :( - Pra completar não tenho acesso via IDRAC

Disk /dev/sda: 146.1 GB, 146163105792 bytes
47 heads, 36 sectors/track, 168720 cylinders
Units = cylinders of 1692 * 512 = 866304 bytes

Device Boot Start End Blocks Id System
/dev/sda1 2 243 204732 de Dell Utility
/dev/sda2 244 6441 5243508 8e Linux LVM
/dev/sda3 * 6442 6683 204732 83 Linux
/dev/sda4 6684 168720 137083302 5 Extended
/dev/sda5 6684 168720 137083284 8e Linux LVM
[root@XXX]# pvscan
PV /dev/sda5 VG VolGroup00 lvm2 [130.72 GB / 0 free]
PV /dev/sda2 VG VolGroup00 lvm2 [5.00 GB / 0 free]
Total: 2 [135.72 GB] / in use: 2 [135.72 GB] / in no VG: 0 [0 ]


Desde já agradeço !
Sampa

[8] Comentário enviado por vandomen em 24/01/2014 - 11:06h


[7] Comentário enviado por sampaloid em 23/01/2014 - 09:41h:

Saudações! excelente how to!

Mas preciso de uma ajudinha ... tenho apenas acesso remoto e preciso saber quais são os discos fisicos... e se estão ou não em raid... :( - Pra completar não tenho acesso via IDRAC

Disk /dev/sda: 146.1 GB, 146163105792 bytes
47 heads, 36 sectors/track, 168720 cylinders
Units = cylinders of 1692 * 512 = 866304 bytes

Device Boot Start End Blocks Id System
/dev/sda1 2 243 204732 de Dell Utility
/dev/sda2 244 6441 5243508 8e Linux LVM
/dev/sda3 * 6442 6683 204732 83 Linux
/dev/sda4 6684 168720 137083302 5 Extended
/dev/sda5 6684 168720 137083284 8e Linux LVM
[root@XXX]# pvscan
PV /dev/sda5 VG VolGroup00 lvm2 [130.72 GB / 0 free]
PV /dev/sda2 VG VolGroup00 lvm2 [5.00 GB / 0 free]
Total: 2 [135.72 GB] / in use: 2 [135.72 GB] / in no VG: 0 [0 ]


Desde já agradeço !
Sampa


Ola Sampa,

Provavelmente se tiver RAID a nível de hardware, você consegue verificar na hora do boot, pela controladora. Mas como esta acessando remoto, achei um link que pode te ajudar a checkar o RAID na controladora: http://www.cyberciti.biz/faq/linux-checking-sas-sata-disks-behind-adaptec-raid-controllers/

Se tiver RAID a nível de software, pode checar com #raiddev /dev/md0 ou #cat /proc/mdstat ou #mdadm --detail /dev/md0
Pelo jeito, você tem apenas 1 disco (sda), pode checkar com #fdisk -l
Neste disco parece que esta com 5 partições, pode checkar com #cat /proc/partitions

Espero ter ajudado!
Abs.


[9] Comentário enviado por hugobcar em 01/04/2014 - 10:06h

Bom dia.

Tem algum motivo de eu particionar um disco para incluir ele no LVM ? Não posso apenas incluir o disco inteiro /dev/sda ao invés de particioná-lo /dev/sda1 para incluir no LVM ?

Pergunto isso porque sempre adiciono o disco inteiro sem particioná-lo, e sempre vejo o pessoal particionando mesmo que tenha apenas uma partição o disco.



Att,
Hugo

[10] Comentário enviado por yros em 01/04/2014 - 12:00h

Oi,

Com o particionamento voce consegue criar diferentes PVs, e adicioná-los a diferentes VGs.

Espero ter ajudado.




[11] Comentário enviado por hugobcar em 02/04/2014 - 17:16h

Boa tarde, yros.

Concordo com voce, mas no caso que mencionei onde e utilizado todo o disco, nao faz sentido fazer particionamentos. Nesse caso poderia apontar o disco inteiro. De qualquer forma, mesmo que utilize o disco inteiro, sempre vejo o pessoal particionando, por isso da duvida.


Att,

[12] Comentário enviado por pattyladislau em 27/08/2014 - 11:08h

Cara obrigada! Ajudou bastante em um procedimento na minha empresa!

[13] Comentário enviado por vandomen em 23/10/2014 - 19:25h


[12] Comentário enviado por pattyladislau em 27/08/2014 - 11:08h:

Cara obrigada! Ajudou bastante em um procedimento na minha empresa!


Patty, fico feliz em ter ajudado!
#vivaolinux

[14] Comentário enviado por AprendiNoLinux em 20/12/2014 - 15:26h

Fantástico artigo mas o debilóide atrás do teclado não consegue reduzir as partições LVM para colocar outras....


[code]
comando: [i][b]lvsan[/b][/i]

ACTIVE '/dev/ubuntu-vg/root' [293,90 GiB] inherit
ACTIVE '/dev/ubuntu-vg/swap_1' [3,93 GiB] inherit
[/code]

Hoje está definida para a raiz apenas e para swap.
Queria definir um tamanhos para:

/home
/var
/usr

Motivo: Utilizar outras distribuições em paralelo.

[15] Comentário enviado por jfernandes em 23/12/2014 - 22:28h

Amigo,
Muito obrigado pelo seu tempo em desenvolver esse post, muito útil pra mim, fiz e deu tudo certo, agora vou praticar mais, dar uma olhada em outras distribuições.

Valeu mesmo.

[16] Comentário enviado por vandomen em 19/06/2015 - 12:58h


[4] Comentário enviado por daniel goes em 15/08/2013 - 19:08h

Estou configurando um servidor com 1Tera de HD (Raid1), fiz a instalação e configuração sem usar o LVM, usei ext4. Uso o CentOS6.4. É recomendado excluir e refazer usando o LVM?


Ola Daniel Goes, em ambiente corporativo, LVM mesmo que você não use para gerenciar os volumes, É BOM TER! Por quê assim, você vai atender com falicidade a demanda futura, principalmente se seu Server for um Filers (servidor de arquivos). Se for possível, você reinstalar, eu faria isso. Abraços

[17] Comentário enviado por rasec_lc em 09/06/2016 - 06:15h

Agradeço se puder me ajudar a resolver esse problema.

Eu precisei reinstalar o sistema e o disco que tenho meus dados esta em formato LVM2.
Após instalar novamente o sistema "Ubuntu Server 16.4, observei que as unidades não foram montadas, como as demais que estavam em EXT4.

Segui a instruções conforme este link:
https://quonn.wordpress.com/2010/12/01/how-to-mount-lvm-partition-on-ubuntu/

Tudo correu bem até o ponto do comando: "vgchange -a y"
Observei que todos os exemplos mostravam "logical volume" com 1 ou 2
Mas no meu caso apresenta: "0 logical volume(s) in volume group “BackUp” now active"

Após isto, quando sigo e executo o comando: "lvscan" , nada aparece, disponiblizando o cursor para novos comandos na linha debaixo.

Não consigo completar a instrução para montar o LVM.

O que posso fazer para montar estas unidades?
Ou ao menos, uma forma de acessar os dados para backup.

Agradeço imensamente a ajuda de vocês...


[18] Comentário enviado por guilessa em 22/08/2018 - 15:00h

Olá, consegui realizar as configurações, porém estou tendo problemas com a configuração do fstab.
Ao reiniciar a máquina, o linux não conclui a inicialização. Para na tela de Ctrl + D para continuar ou logar como root.
O erro no log de inicialização é o seguinte:
Timeout waiting for device "/dev/mapper/dados-cliente_x" (meu caminho);
Dependencie failed for /<meudiretório>
Dependencie failed for local filesystem

Poderia me ajudar?

[19] Comentário enviado por vandomen em 22/08/2018 - 15:23h


[18] Comentário enviado por guilessa em 22/08/2018 - 15:00h

Olá, consegui realizar as configurações, porém estou tendo problemas com a configuração do fstab.
Ao reiniciar a máquina, o linux não conclui a inicialização. Para na tela de Ctrl + D para continuar ou logar como root.
O erro no log de inicialização é o seguinte:
Timeout waiting for device "/dev/mapper/dados-cliente_x" (meu caminho);
Dependencie failed for /&lt;meudiretório&gt;
Dependencie failed for local filesystem

Poderia me ajudar?


Olá guilessa,

Parece que declarou o /etc/fstab errado, segue exemplo:

/dev/mapper/dados-cliente_x /path_onde_vai_montar_volumer ext4 defaults 0 0

OU

/dev/vg/lv /path_onde_vai_montar_volumer ext4 defaults 0 0


Espero ter ajudado!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts