Linux Volume Manager (LVM): mudanças entre as edições
Linha 83: | Linha 83: | ||
== Adição de PVs ao VG == | == Adição de PVs ao VG == | ||
Agora, vamos criar um PV em /dev/hdc2 e vamos adicioná-lo ao VG teste. Inicialmente, vamos criar o PV: | Agora, vamos criar um PV em ''/dev/hdc2'' e vamos adicioná-lo ao VG ''teste''. Inicialmente, vamos criar o PV: | ||
# pvcreate /dev/hdc2 | # pvcreate /dev/hdc2 | ||
A seguir, vamos criar um VG, denominado teste2, dentro do novo PV: | A seguir, vamos criar um VG, denominado ''teste2'', dentro do novo PV: | ||
# vgcreate teste2 /dev/hdc2 | # vgcreate teste2 /dev/hdc2 | ||
Por último, vamos inserir | Por último, vamos inserir ''teste2'' no fim de ''teste''. Note que há uma ordem para os nomes dos VGs a serem colocados no comando. Primeiro virá o nome que irá vigorar após a junção. Veja o comando: | ||
# vgmerge teste teste2 | # vgmerge teste teste2 | ||
Ou seja: teste2 será inserido no fim de teste e o nome final da junção será teste. Não se esqueça que, anteriormente, criamos um filesystem dentro do volume lógico. Se o volume lógico aumentar de tamanho, o filesystem também terá que sofrer um aumento. Cada filesystem possui um comando para fazer isso. Para o ReiserFS, por exemplo, veja o manual on-line do comando resize_reiserfs. Nada impede que você faça um backup dos dados e, simplesmente, formate novamente o volume lógico. | Ou seja: ''teste2'' será inserido no fim de teste e o nome final da junção será ''teste''. Não se esqueça que, anteriormente, criamos um filesystem dentro do volume lógico. Se o volume lógico aumentar de tamanho, o filesystem também terá que sofrer um aumento. Cada filesystem possui um comando para fazer isso. Para o ReiserFS, por exemplo, veja o manual on-line do comando ''resize_reiserfs''. Nada impede que você faça um backup dos dados e, simplesmente, formate novamente o volume lógico. | ||
== Removendo volumes lógicos == | == Removendo volumes lógicos == |
Edição das 10h46min de 19 de janeiro de 2009
ATENÇÃO: Grande parte deste artigo foi adaptado a partir do Capítulo 36 do Livro Descobrindo o Linux (2ª edição), de João Eriberto Mota Filho. Editora Novatec, ano 2007. |
by (C) João Eriberto Mota Filho <eriberto (a) eriberto pro br>
Artigo criado em: 01 de maio de 2007.
Última atualização: veja o rodapé desta página.
Tiny URL ou bit.ly: {{{2}}}
LVM é a abreviatura de Linux Volume Manager. O LVM é um recurso que permite criar volumes lógicos (uma espécie de particionamento virtual). Com o LVM é possível, por exemplo, criar mais de 15 "partições" em discos SCSI e SATA. Também é possível dizer que uma "partição" irá ocupar dois ou mais HDs.
O funcionamento do LVM
O LVM funciona com três elementos básicos: o PV (Physical Volume ou Volume Físico), o VG (Volume Group ou Agrupamento de Volumes) e o LV (Logical Volume ou Volume Lógico). O PV é o elemento que balizará a área do HD (ou dos HDs) que será utilizada com o LVM. O VG é uma subdivisão do PV. Funciona como uma partição estendida, que irá receber vários LV, que trabalham como se fossem partições lógicas. Poderemos ter vários PVs, VGs e LVs na mesma máquina.
A implementação do LVM
Pré-requisitos
Para criar volumes lógicos utilizando o LVM versão 2, será necessário ter uma partição do HD livre para poder receber volumes lógicos. Essa partição deverá estar criada (exemplo: /dev/hda5), mas não precisará estar formatada.
Instalação do LVM2
# apt-get install lvm2
Criação dos volumes físicos (PV)
Com a partição que receberá os volumes lógicos desmontada, crie um volume físico (PV) com o seguinte comando (considerando que tal partição seja a /dev/hda5):
# pvcreate /dev/hda5
Para ver o PV criado, utilize o comando:
# pvs
Criação dos agrupamentos de volumes (VG)
A seguir, crie um agrupamento de volumes (VG), denominado teste, com o comando:
# vgcreate teste /dev/hda5
Se você tivesse criado um PV em /dev/hda5 e outro em /dev/hdc2 (partição em outro HD), você poderia unir os dois em um só VG, com o comando:
# vgcreate teste /dev/hda5 /dev/hdc2
IMPORTANTE: A qualquer momento você poderá acrescer ou retirar uma PV de um VG. |
Para ver o VG criado, utilize o comando:
# vgs
Criação dos volumes lógicos (LV)
Para criar um volume lógico com 200 MB, com o nome de documentos, dentro do VG teste, utilize o seguinte comando:
# lvcreate -L200M -n documentos teste
Para ver o volume criado, utilize o comando:
# lvs
Para criar um volume com GB (gigabyte) de tamanho, utilize G. Exemplo: 2G. Para MB, utilize M e assim por diante. Caso deseje criar um volume com tamanho com valor fracionário, utilize vírgula. Exemplo: 5,5G.
Caso deseje criar um volume lógico que ocupe todo o espaço livre do VG, inicialmente, emita o comando:
# vgdisplay
Procure pela linha Free PE / Size. Nesta linha aparecerá o número de extents (algo como blocos) livres. Exemplo:
Free PE / Size 114788 / 448,39 GB
A seguir, considerando o valor 114788, emita o comando:
# lvcreate -l114788 -n documentos teste
A utilização dos volumes lógicos
Para serem utilizados, cada um dos volumes lógicos deverá ser formatado. Quando geramos o VG chamado teste, foi criado automaticamente o diretório /dev/teste. Quando criamos o LV documentos, foi criado o arquivo /dev/teste/documentos. Ou seja, a partir de agora poderemos formatar o dispositivo /dev/teste/documentos, como se fosse uma partição comum, como /dev/hda1. Exemplo:
# mkfs.reiserfs /dev/teste/documentos
Finalmente, monte o volume lógico em algum diretório para poder utilizá-lo. Exemplo:
# mkdir /docs # mount /dev/teste/documentos /docs # df -h
Adição de PVs ao VG
Agora, vamos criar um PV em /dev/hdc2 e vamos adicioná-lo ao VG teste. Inicialmente, vamos criar o PV:
# pvcreate /dev/hdc2
A seguir, vamos criar um VG, denominado teste2, dentro do novo PV:
# vgcreate teste2 /dev/hdc2
Por último, vamos inserir teste2 no fim de teste. Note que há uma ordem para os nomes dos VGs a serem colocados no comando. Primeiro virá o nome que irá vigorar após a junção. Veja o comando:
# vgmerge teste teste2
Ou seja: teste2 será inserido no fim de teste e o nome final da junção será teste. Não se esqueça que, anteriormente, criamos um filesystem dentro do volume lógico. Se o volume lógico aumentar de tamanho, o filesystem também terá que sofrer um aumento. Cada filesystem possui um comando para fazer isso. Para o ReiserFS, por exemplo, veja o manual on-line do comando resize_reiserfs. Nada impede que você faça um backup dos dados e, simplesmente, formate novamente o volume lógico.
Removendo volumes lógicos
As remoções deverão ser feitas de trás para frente. Ou seja: se você criou um PV, em seguida um VG e em seguida um LV, você deverá remover o LV, para depois remover o VG, para depois remover o PV. Vamos remover todos os elementos criados até agora. Inicialmente, deveremos desmontar os LVs montados. Para isso, execute:
# df -h
Um dos resultados será:
/dev/mapper/teste-documentos 200M 33M 168M 17% /docs
Então, desmonte o volume com o comando:
# umount /docs
A seguir, liste os volumes para descobrir quais são eles:
# lvs LV VG Attr LSize Origin Snap% Move Log Copy% documentos teste -wi-a- 200,00M
Em seguida, remova o LV, utilizando a referência VG/LV:
# lvremove teste/documentos
Agora liste os VGs e remova-os:
# vgs VG #PV #LV #SN Attr VSize VFree teste 2 0 0 wz--n- 11,68G 11,68G # vgremove teste
Faça o mesmo com os PVs:
# pvs PV VG Fmt Attr PSize PFree /dev/hda5 lvm2 -- 9,32G 9,32G /dev/hdc2 lvm2 -- 2,37G 2,37G # pvremove /dev/hda5 /dev/hdc2
Com essas ações, toda a estrutura de volumes lógicos foi removida.
Outras possibilidades de comandos com o LVM
Existem diversas possibilidades para a manipulação de volumes lógicos. O comando # lvm help mostrará um resumo de todos as opções. É possível, por exemplo, renomear os volumes lógicos (LV) ou os VGs. Também é possível fazer um backup das configurações.
lvm help Available lvm commands: Use 'lvm help <command>' for more information dumpconfig Dump active configuration formats List available metadata formats help Display help for commands lvchange Change the attributes of logical volume(s) lvcreate Create a logical volume lvdisplay Display information about a logical volume lvextend Add space to a logical volume lvmchange With the device mapper, this is obsolete and does nothing. lvmdiskscan List devices that may be used as physical volumes lvmsadc Collect activity data lvmsar Create activity report lvreduce Reduce the size of a logical volume lvremove Remove logical volume(s) from the system lvrename Rename a logical volume lvresize Resize a logical volume lvs Display information about logical volumes lvscan List all logical volumes in all volume groups pvchange Change attributes of physical volume(s) pvcreate Initialize physical volume(s) for use by LVM pvdata Display the on-disk metadata for physical volume(s) pvdisplay Display various attributes of physical volume(s) pvmove Move extents from one physical volume to another pvremove Remove LVM label(s) from physical volume(s) pvs Display information about physical volumes pvscan List all physical volumes segtypes List available segment types vgcfgbackup Backup volume group configuration(s) vgcfgrestore Restore volume group configuration vgchange Change volume group attributes vgck Check the consistency of volume group(s) vgconvert Change volume group metadata format vgcreate Create a volume group vgdisplay Display volume group information vgexport Unregister volume group(s) from the system vgextend Add physical volumes to a volume group vgimport Register exported volume group with system vgmerge Merge volume groups vgmknodes Create the special files for volume group devices in /dev vgreduce Remove physical volume(s) from a volume group vgremove Remove volume group(s) vgrename Rename a volume group vgs Display information about volume groups vgscan Search for all volume groups vgsplit Move physical volumes into a new volume group version Display software and driver version information
Checagem e correção do filesystem nos volumes lógicos
A checagem de filesystem nos volumes lógicos poderá ser realizada normalmente. Para tanto, considerando um filesystem ReiserFS, com o volume lógico fora do ar (e a sua partição desmontada), utilize o comando:
# reiserfsck /dev/<volume lógico>
Exemplo:
# reiserfsck /dev/vm/vm1.raiz
Utilize o comando de checagem específico para cada tipo de filesystem.
Links externos
- LVM na Wikipedia (En)
- LVM2 Resource Page
- LVM-HOWTO
- LinuxDevCenter.com Article "Managing Disk Space with LVM"
Fonte original
- Capítulo 36 do Livro Descobrindo o Linux (2ª edição), de João Eriberto Mota Filho.
Controle de acessos
<absHTML>
</absHTML>