Linux Volume Manager (LVM): mudanças entre as edições

De Eriberto Wiki
Ir para navegação Ir para pesquisar
 
(12 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
{{exclamação2|'''ATENÇÃO''': Grande parte deste artigo foi adaptado a partir do Capítulo 36 do '''Livro [http://www.novateceditora.com.br/livros/linux2 Descobrindo o Linux (2ª edição)]''', de João Eriberto Mota Filho. Editora [http://www.novateceditora.com.br Novatec], ano 2007.}}
{{exclamação2|'''ATENÇÃO''': Grande parte deste artigo foi adaptado a partir do Capítulo 36 do '''Livro [http://www.novateceditora.com.br/livros/linux2 Descobrindo o Linux (2ª edição)]''', de João Eriberto Mota Filho. Editora [http://www.novateceditora.com.br Novatec], ano 2007.}}


{{cabeçalho|01 de maio de 2007}}
{{cabeçalho|01 de maio de 2007|http://tiny.cc/lvm}}


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.
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.
Linha 11: Linha 11:
== A implementação do LVM ==
== A implementação do LVM ==


=== Pré-requisitos ===
==== 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.
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 ===
==== Instalação do LVM2 ====


  # apt-get install lvm2
  # apt-get install lvm2


=== Criação dos volumes físicos (PV) ===
==== 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):
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
  # pvcreate /dev/hda5
Linha 29: Linha 29:
  # pvs
  # pvs


=== Criação dos agrupamentos de volumes (VG) ===
==== Criação dos agrupamentos de volumes (VG) ====


A seguir, crie um agrupamento de volumes (VG), denominado teste, com o comando:
A seguir, crie um agrupamento de volumes (VG), denominado ''teste'', com o comando:


  # vgcreate teste /dev/hda5
  # 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:
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
  # vgcreate teste /dev/hda5 /dev/hdc2


IMPORTANTE: A qualquer momento você poderá acrescer ou retirar uma PV de um VG.
{{exclamação1|IMPORTANTE: A qualquer momento você poderá acrescer ou retirar uma PV de um VG.}}


Para ver o VG criado, utilize o comando:
Para ver o VG criado, utilize o comando:
Linha 45: Linha 45:
  # vgs
  # vgs


=== Criação dos volumes lógicos (LV) ===
==== 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:
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
  # lvcreate -L200M -n documentos teste
Linha 61: Linha 61:
  # vgdisplay
  # vgdisplay


Procure pela linha ''Free  PE / Size''. Nesta linha aparecerá o número de extents (algo como blocos) livres. Exemplo:
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
  Free  PE / Size    114788 / 448,39 GB
Linha 71: Linha 71:
== A utilização dos volumes lógicos ==
== 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:
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
  # mkfs.reiserfs /dev/teste/documentos
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 teste 2 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á ficar após a junção. Veja o comando:
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 ==
Linha 142: Linha 142:
== Outras possibilidades de comandos com o LVM ==
== 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.
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
  lvm help
Linha 219: Linha 219:
<br>
<br>


== Controle de acessos ==
== Comentários, sugestões e controle de acessos ==
 
Por favor, '''deixe os seus comentários e sugestões sobre este artigo''' no meu Blog Técnico. Para isto, [http://www.eriberto.pro.br/blog/?p=535 clique aqui].
 
 


<absHTML>
<absHTML>
Linha 225: Linha 229:
</a></div>
</a></div>
<br>
<br>
<div style="text-align: center;">Consulte tamb&eacute;m o contador abaixo, iniciado em 01 Mai 07, al&eacute;m do gr&aacute;fico acima.
<div style="text-align: center;">Consulte tamb&eacute;m o contador abaixo, iniciado em 01 mai. 07, al&eacute;m do gr&aacute;fico acima.
</div>
</div>
</absHTML>
</absHTML>

Edição atual tal como às 05h45min de 21 de janeiro de 2011

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: http://tiny.cc/lvm



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


Fonte original


Comentários, sugestões e controle de acessos

Por favor, deixe os seus comentários e sugestões sobre este artigo no meu Blog Técnico. Para isto, clique aqui.


<absHTML>

<a href="http://www2.clustrmaps.com/counter/maps.php?url=http://www.eriberto.pro.br/wiki/index.php?title=lvm" id="clustrMapsLink"><img src="http://www2.clustrmaps.com/counter/index2.php?url=http://www.eriberto.pro.br/wiki/index.php?title=lvm" /> </a>


Consulte também o contador abaixo, iniciado em 01 mai. 07, além do gráfico acima.

</absHTML>