Manobras radicais com o LVM – Logical Volume Manager

Abstrato

Recentemente tive problemas com o meu computador e resolvi mudar o disco de 500GB para outro de 160Gb, contendo somente o sistema operacional e os dados “hot”, com os quais trabalho.

A idéia é que eu tenha um disco de trabalho livre para se reformatar, substituir, fazer testes, etc, mantendo os meus dados e arquivos a salvo num HD externo, que passa a ser, a partir de agora a minha base.

Estas operações são muito mais fáceis de ser feitas usando o gerenciador de volumes lógicos (lvm) e a vantagem é que o computador pode bootar a partir do usb usando o sistema original.

Isto exige um pouco de conhecimento do funcionamento do lvm, mas explicar isto é tarefa de outros artigos que podem ser buscados no google. (Ex: http://tldp.org/HOWTO/LVM-HOWTO/)

O Caso

Eu tenho em vg_pistache (eu escolhi este nome quando criei pois o meu computador tem o nome pistache) vários volumes lógicos cujo espaço somado não ocupa todo o disco.

Vou ampliando/reduzindo estes volumes na medida da minha necessidade e assim evito os formatos “engessados” de sistema com partições obrigatóriamente de tamanho fixo e que de vez em quando estouram o limite. Também sigo a abordagem de manter partições separadas para / (slash), root, home, var, etc, o que facilita muito a manutenção dos computadores ao longo dos anos.

Aqui, o que pretendo anotar, é uma tarefa específica: manobrar o HD, via usb, para montagens e desmontagens sem necessidade de reboot no sistema. Isto, além das vantagens de segurança, física e lógica (os volumes podem ser criptografados com facilidade), possibilita o transporte fácil entre casa/escritório.

As dicas originais, peguei aqui e decidi então, antes que eu me esqueça e o link original suma, anotar a experiência e o método que utilizei.

As partes

  1. 1 Notebook
  2. 1 HD SATA* de 160 GB
  3. 1 HD SATA de 500 GB
  4. 1 Cradle** USB Seagate® FreeAgent GoFlex™.

* SATA: não precisaria ser SATA, pois se vc tiver um equipamento PATA ou IDE (antigo ) o processo funcioanará pois é feito via usb.
** Cradle = cabo com uma ponta usb e outra com uma base de suporte onde o disco é espetado.

Objetivo

Montar o HD de 500GB do notebook, disponibilizado pelo cradle para acessos de backup e restauração do disco de 160GB que ficará instalado no notebook.

Uma vez montado (fisicamente) na base o disco de 500 GB é reconhecido pelo linux e para se montar (logicamente) um volume existente em um HD (ou usb/hd externo) é necessário o seguinte

  •  Primeiro fazer um reconhecimento de volumes, usando o comando pvscan (via conta root ou sudo), que quer dizer Physical Volume Scan

– Os discos existentes serão listados assim:

root@pistache:/home/marz# pvscan
PV /dev/sdb5 VG vg_pistache lvm2 [465,52 GiB / 179,72 GiB free]
PV /dev/sda5 VG pistache lvm2 [148,81 GiB / 0 free]
Total: 2 [614,33 GiB] / in use: 2 [614,33 GiB] / in no VG: 0 [0 ]

Neste caso o volume que quero acessar está em /dev/sdb5 e não aparece sob /dev pois não havia sido conectado no cradle quando bootei, no qual eu espetei o disco onde estava instalado o meu sistema operacional, com todos os meus dados e arquivos gravados neste volume

  • Em seguida fazer um vgscan que quer dizer Volume Group Scan, que no meu caso retornou isto:
root@pistache:/home/marz# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg_pistache" using metadata type lvm2
Found volume group "pistache" using metadata type lvm2

Uma vez identificado o os volumes fisicos e os grupos lógicos buscamos pelos volumes lógicos com lvscan

root@pistache:/home/marz# lvscan
inactive '/dev/vg_pistache/root' [5,00 GiB] inherit
inactive '/dev/vg_pistache/usr' [13,00 GiB] inherit
inactive '/dev/vg_pistache/swap_1' [5,80 GiB] inherit
inactive '/dev/vg_pistache/var' [20,00 GiB] inherit
inactive '/dev/vg_pistache/tmp' [5,00 GiB] inherit
inactive '/dev/vg_pistache/vm' [50,00 GiB] inherit
inactive '/dev/vg_pistache/music' [40,00 GiB] inherit
inactive '/dev/vg_pistache/books' [10,00 GiB] inherit
inactive '/dev/vg_pistache/lab' [20,00 GiB] inherit
inactive '/dev/vg_pistache/videos' [20,00 GiB] inherit
inactive '/dev/vg_pistache/images' [40,00 GiB] inherit
inactive '/dev/vg_pistache/secret' [4,00 GiB] inherit
inactive '/dev/vg_pistache/mule' [20,00 GiB] inherit
inactive '/dev/vg_pistache/home' [20,00 GiB] inherit
inactive '/dev/vg_pistache/wine' [1,00 GiB] inherit
inactive '/dev/vg_pistache/kdemarz' [8,00 GiB] inherit
inactive '/dev/vg_pistache/vartemp' [4,00 GiB] inherit
ACTIVE '/dev/pistache/root' [332,00 MiB] inherit
ACTIVE '/dev/pistache/usr' [8,38 GiB] inherit
ACTIVE '/dev/pistache/var' [2,79 GiB] inherit
ACTIVE '/dev/pistache/swap_1' [7,56 GiB] inherit
ACTIVE '/dev/pistache/tmp' [380,00 MiB] inherit
ACTIVE '/dev/pistache/home' [129,38 GiB] inherit

Note aqui que os volumes ATIVADOS já foram instalados e reconhecidos durante o boot, entretanto os inativos não aparecerm sob o /dev, e é isto que precisamos fazer acontecer para que possamos montá-los.

Isto se faz com o seguinte comando

lvchange -a y /dev/vg_pistache/home

Que não retorna mensagens na saída mas podemos verificar o resultado emitindo outro comando lvscan

.
.
.
inactive '/dev/vg_pistache/mule' [20,00 GiB] inherit
ACTIVE '/dev/vg_pistache/home' [20,00 GiB] inherit
inactive '/dev/vg_pistache/wine' [1,00 GiB] inherit
inactive '/dev/vg_pistache/kdemarz' [8,00 GiB] inherit
.
.
.

Pronto, uma vez visto pelo sistema, basta montar normalmente com o comando mount, que no meu caso será facilitado por outra técnica: deixar o volume preparado em fstab.

Eu utilizo a seguinte linha no meu fstab para isto (ver man fstab) http://linux.die.net/man/5/fstab

# Old pistache
/dev/vg_pistache/home /var/local/mirror/home ext4 defaults,noauto,owner,user 0 2

Que quer dizer:

  • /dev/vg_pistache/home: disco a ser montado
  • /var/local/mirror/home: ponto de montagem: o diretório para o ponto de montagem eu já deixei preparado em meu /var/local…
  • Opções para montagem:
    • default: montar com o privilegios normais (rw, suid, dev, exec, auto, nouser e async)
    • noauto: não montar durante o boot
    • owner: somente quem montou é quem pode desmontar (se fosse users, qualquer um monta ou desmonta)
  • 0 – não precisa de “dump” (Ver comando dump)
  • 2 – ordem de checkup (o fsck será feito na segunda passagem, ou seja, depois de checar o / (slash).

2 comentários sobre “Manobras radicais com o LVM – Logical Volume Manager

  1. Muito simples e eficiente o seu howto.
    Estou com algumas dúvidas em relação ao lvm.
    No meu servidor estou com um problema, quando reinicio a máquina tenho o seguinte cenário!!
    #lvscan
    ACTIVE ‘/dev/sitesea.vg00/swap’ [1.91 GiB] inherit
    ACTIVE ‘/dev/sitesea.vg00/root’ [488.00 MiB] inherit
    ACTIVE ‘/dev/sitesea.vg00/usr’ [1.91 GiB] inherit
    ACTIVE ‘/dev/sitesea.vg00/var’ [488.00 MiB] inherit
    ACTIVE ‘/dev/sitesea.vg00/tmp’ [488.00 MiB] inherit
    ACTIVE ‘/dev/sitesea.vg00/home’ [488.00 MiB] inherit
    ACTIVE ‘/dev/sitesea.vg00/opt’ [3.86 GiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/root’ [488.00 MiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/var’ [976.00 MiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/usr’ [1.91 GiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/tmp’ [488.00 MiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/home’ [488.00 MiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/swap’ [1.91 GiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/os_isos’ [5.00 GiB] inherit

    Depois que executo o vgscan
    #vgscan
    Reading all physical volumes. This may take a while…
    Couldn’t find device with uuid FMWRJM-6cpN-PXGd-mWYr-6gnM-379b-y5NuwZ.
    Found volume group “sitesea.vg00” using metadata type lvm2
    Found volume group “pacifico.vg00” using metadata type lvm2

    e listo novamente com lvscan
    #lvscan
    inactive ‘/dev/sitesea.vg00/swap’ [1.91 GiB] inherit
    inactive ‘/dev/sitesea.vg00/root’ [488.00 MiB] inherit
    inactive ‘/dev/sitesea.vg00/usr’ [1.91 GiB] inherit
    inactive ‘/dev/sitesea.vg00/var’ [488.00 MiB] inherit
    inactive ‘/dev/sitesea.vg00/tmp’ [488.00 MiB] inherit
    inactive ‘/dev/sitesea.vg00/home’ [488.00 MiB] inherit
    inactive ‘/dev/sitesea.vg00/opt’ [3.86 GiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/root’ [488.00 MiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/var’ [976.00 MiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/usr’ [1.91 GiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/tmp’ [488.00 MiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/home’ [488.00 MiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/swap’ [1.91 GiB] inherit
    ACTIVE ‘/dev/pacifico.vg00/os_isos’ [5.00 GiB] inherit

    Não sei o que fazer para montar meu grupo lvm sitesea.

    A questão é que todos os logins que estavam cadastraram sumiram, ficando somente o login de quando a máquina foi criada, ou seja a impressão que tenho é que ela está montando uma partição velha, tipo um backup antigo.

    Grato.

    1. Está no corpo do artigo, faça o seguinte:

      lvchange -a y /dev/vg_pistache/xxx ( onde xxx é o volume desejado).

      E monte-o onde vc possa trabalhar e transferir os dados que você precisa.
      Supondo que é uma simples troca de discos, cuidado para não sobrescrever os dados originais.
      Veja também a estrutura do seu fstab.
      Uma vez transferido, faça os ajustes necessários.

      Dica, eu sempre uso um terceiro linux, que rodo a partir de um cd.
      No caso a distro que uso para estas manobras é o finnix em modo texto.

Deixe uma resposta

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s