Filesystem LVM

O intuito deste artigo é mostrar algumas funcionalidades do LVM. Sei que na Internet, e aqui mesmo no site, temos ótimos artigos. A minha intenção é agregar mais informações sobre seu uso.

[ Hits: 12.358 ]

Por: Faustino em 04/05/2016


Substituindo um disco defeituoso com o PVMOVE



Todos os discos devem ter o mesmo tamanho que o volume original e o disco deve ter sido preparado com fdisk. Após o disco preparado iremos colocar ele dentro do mesmo VG que o disco defeituoso.

Inicialmente vamos listar todos os vgs existentes.

# vgs
  VG        #PV #LV #SN Attr   VSize    VFree
  VolGroup    1   2   0 wz--n-   29.51g      0
  backup_VG   1   1   0 wz--n-   15.99g 504.00m
  nv_vg       1   1   0 wz--n- 1016.00m 116.00m
  user_vg     2   1   0 wz--n-    1.98g   1.50g

Depois que listamos todos os VGS e sabemos o exatamente o nome do VG será necessário listar todos os discos existentes no VG para isso usamos o comando.

# vgdisplay -v backup_VG
    Using volume group(s) on command line
    Finding volume group "backup_VG"
  --- Volume group ---
  VG Name               backup_VG
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               15.99 GiB
  PE Size               4.00 MiB
  Total PE              4094
  Alloc PE / Size       3968 / 15.50 GiB
  Free  PE / Size       126 / 504.00 MiB
  VG UUID               3iqeMN-P8HK-3uXA-8ihu-fqWs-04Om-JvaqP8

  --- Logical volume ---
  LV Path                /dev/backup_VG/backup_LV
  LV Name                backup_LV
  VG Name                backup_VG
  LV UUID                hSRf7H-ivRV-bukV-lgD7-c4rC-FRAg-mBsMX8
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-04-22 03:32:58 -0300
  LV Status              available
  # open                 1
  LV Size                15.50 GiB
  Current LE             3968
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Physical volumes ---
  PV Name               /dev/sdj1
  PV UUID               9F83S6-i0mI-A4LY-1g5Z-WPJs-adXn-weKscP
  PV Status             allocatable
  Total PE / Free PE    4094 / 126

Na saída vamos procurar o item "Physical volumes e PV name", aqui temos o disco que será substituído.

Sabendo qual disco vamos substituir vamos começar o preparo do novo disco, vamos preparar o disco para o LVM.

# pvcreate /dev/sdi1
  Physical volume "/dev/sdi1" successfully created

E agora vamos adicionar o disco no mesmo VG que o disco defeituoso está.

# vgextend backup_VG /dev/sdi1
  Volume group "backup_VG" successfully extended

Vamos usar novamente o comando "vgdisplay -v nome do VG":

# vgdisplay -v backup_VG
    Using volume group(s) on command line
    Finding volume group "backup_VG"
  --- Volume group ---
  VG Name               backup_VG
  System ID
  
  Alloc PE / Size       3968 / 15.50 GiB
  Free  PE / Size       4220 / 16.48 GiB
  VG UUID               3iqeMN-P8HK-3uXA-8ihu-fqWs-04Om-JvaqP8

  --- Logical volume ---
  LV Path                /dev/backup_VG/backup_LV
  LV Name                backup_LV
  VG Name                backup_VG
    # open                 1
  LV Size                15.50 GiB
  Block device           253:2

  --- Physical volumes ---
  PV Name               /dev/sdj1
  PV UUID               9F83S6-i0mI-A4LY-1g5Z-WPJs-adXn-weKscP
  PV Status             allocatable
  Total PE / Free PE    4094 / 126

  PV Name               /dev/sdi1
  PV UUID               5z9suk-k78C-sfB4-07eb-pN4i-y8UJ-qARrRt
  PV Status             allocatable
  Total PE / Free PE    4094 / 4094

Como pode ser visto acima o novo disco foi entregue ao LVM com sucesso, agora vamos usar o PVMOVE:

pvmove origem destino

# pvmove /dev/sdj1 /dev/sdi1
  /dev/sdj1: Moved: 0.1%
  /dev/sdj1: Moved: 15.0%
  /dev/sdj1: Moved: 33.9%
  /dev/sdj1: Moved: 48.7%
  /dev/sdj1: Moved: 62.0%
  /dev/sdj1: Moved: 73.7%
  /dev/sdj1: Moved: 84.4%
  /dev/sdj1: Moved: 96.4%
  /dev/sdj1: Moved: 100.0%

É possível acompanhar o processo usando o comando "lvs -a -o+devices". Para isso, abra uma nova sessão e execute esse comando:

# lvs -a -o+devices
  LV        VG        Attr       LSize   Pool Origin Data%  Move   Log Cpy%Sync Convert Devices
  lv_root   VolGroup  -wi-ao----  27.54g       /dev/sda2(0)
  lv_swap   VolGroup  -wi-ao----   1.97g       /dev/sda2(7050)
  backup_lv backup_vg -wI-ao----  15.50g       pvmove0(0)
  [pvmove0] backup_vg p-C-aom---  15.50g       /dev/sdj1     19.05   /dev/sdj1(0),/dev/sdi1(0)
  nv_lv     nv_vg     -wi-a----- 900.00m       /dev/sde1(0)
  user01LV  user_vg   -wi-ao---- 500.00m       /dev/sdf1(0)

Após a conclusão do pvmove é hora de remover o(s) disco(s):

# vgreduce backup_vg /dev/sdj1
  Removed "/dev/sdj1" from volume group "backup_vg"

# vgdisplay -v backup_vg
    Using volume group(s) on command line
    Finding volume group "backup_vg"
  --- Volume group ---
  VG Name               backup_vg
  System ID
  Format                lvm2
  VG Status             resizable
  MAX LV                0
  VG Size               15.99 GiB
  Alloc PE / Size       3968 / 15.50 GiB
  Free  PE / Size       126 / 504.00 MiB
  VG UUID               LQFZnI-NpPq-OzX0-ZX2R-dGh6-QHau-Mc9joG

  --- Logical volume ---
  LV Path                /dev/backup_vg/backup_lv
  LV Name                backup_lv
  VG Name                backup_vg
  LV Size                15.50 GiB
  Current LE             3968
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Physical volumes ---
  PV Name               /dev/sdi1
  PV UUID               UiYaDq-7kXf-8eqX-3KIB-jbl6-eQ5R-cHgkwZ
  PV Status             allocatable
  Total PE / Free PE    4094 / 126

E por último removeremos de toda a estrutura LVM usando o comando abaixo:

# pvcreate /dev/sdj1 Physical volume "/dev/sdj1" successfully created Como pode ser visto acima o disco foi removido do servidor.

Página anterior     Próxima página

Páginas do artigo
   1. Conceito
   2. Criando filesystem
   3. Substituindo um disco defeituoso com o PVMOVE
   4. Entendendo o que é o Stripe
Outros artigos deste autor

Configurações Básicas no CentOS 7

Stripe no LVM

Leitura recomendada

Introdução ao universo dos filesystems

Controlando projetos com o fantástico CVS

Recuperando discos danificados com o myrescue

Ativando suporte ao NTFS no RedHat9 sem recompilar o kernel

Captive-NTFS com kernel 2.6

  
Comentários
[1] Comentário enviado por removido em 25/05/2016 - 10:01h

Bom dia
Pergunta o pvmove destroi os dados do disco ? ou ele migra os dados tambem ou possui perda de dados .

Voce poderia usar tambem o lvconvert , de resto parabens !)

[2] Comentário enviado por Faustoncc1701 em 26/05/2016 - 05:20h

Clandestine eu já usei este comando em ambiente de produção e ele faz a cópia de todos os dados do disco que vc apontar.
Eu nunca tentei fazer o rollback do pvmove mas acredito que os dados ainda estão íntegros se o disco estiver íntegro.

Eu nunca usei o lvconvert irei verificar o seu funcionamento
Fausto
Diga-me Eu não posso e eu vou te mostrar que eu posso ...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts