Dados meta do LVM perdidos, mas o sistema de arquivos ainda funciona

1

Aqui está a configuração:

  • JBOD de 70 TB como parte de uma SAN, dividida em 5 LUNs (4x15TB e 1x10TB).
  • O servidor de arquivos executando o Centos 7 se conecta aos 5 LUNs via iSCSI, usando iscsiadm , em dois caminhos de rede, para um total de 10 caminhos.
  • Use dm-multipath para agregar esses caminhos iSCSI em dispositivos únicos, ou seja, /dev/mapper/mpath* .
  • Crie volumes físicos usando pvcreate nos dispositivos dm-mutipath acima.
  • Crie um único grupo de volumes usando todos os volumes físicos.
  • Crie vários volumes lógicos para a capacidade desejada.
  • Formate volumes lógicos como XFS usando mkfs.xfs .

Agora, havia um problema com a SAN que exigia manutenção (atualização do firmware do controlador) e, portanto, reinicializei o servidor de arquivos para garantir que nada ficasse maluco quando a SAN estivesse on-line.

Na reinicialização, consegui me reconectar à SAN e montar os sistemas de arquivos. Eles estão operando normalmente.

No entanto, após a reinicialização do servidor de arquivos, observei que as informações de LVM desses sistemas de arquivos não aparecem, por exemplo, pvdisplay , vgdisplay e lvdisplay reportam apenas o disco local no servidor de arquivos.

Esses VG e LV aparecem em /dev :

/dev/vg_${VG}
/dev/vg_${VG}/${LV1}_lv
/dev/vg_${VG}/${LV2}_lv
/dev/disk/by-id/dm-name-${VG}-${LV1}_lv
/dev/disk/by-id/dm-name-${VG}-${LV2}_lv
/dev/mapper/vg_${VG}-${LV1}_lv
/dev/mapper/vg_${VG}-${LV1}_lv

E eles aparecem usando pvs -a , mas têm extensões zero:

[root@file-server /]# pvs -a
PV                                     VG     Fmt  Attr PSize   PFree
/dev/centos/home                                   ---       0     0
/dev/centos/root                                   ---       0     0
/dev/centos/swap                                   ---       0     0
/dev/mapper/mpatha                                 ---       0     0
/dev/mapper/mpathb                                 ---       0     0
/dev/mapper/mpathc                                 ---       0     0
...
/dev/sda                                           ---       0     0
/dev/sda1                                          ---       0     0
/dev/sda2                              centos lvm2 a--  273.80g 4.00m
/dev/sdb                                           ---       0     0
/dev/sdc                                           ---       0     0
/dev/sdd                                           ---       0     0
/dev/sde                                           ---       0     0
...
/dev/vg_${VG1}/${LV1}_lv               ---       0     0
/dev/vg_${VG1}/${LV2}_lv                  ---       0     0

Eles também aparecem com dmsetup info -c :

[root@file-server /]# dmsetup info -c
Name                              Maj Min Stat Open Targ Event  UUID
mpathe                            253   6 L--w    1    1      1 mpath-27f3164e4727f3bc5
mpathd                            253   5 L--w    1    1      1 mpath-2b3c12e7d9acc5f25
mpathc                            253   4 L--w    1    1      1 mpath-232eb560378e8ec53
mpathb                            253   7 L--w    1    1      1 mpath-218029135ad1e514a
mpatha                            253   3 L--w    1    1      1 mpath-20123b6d74acce549
vg_${VG}-${LV1}_lv    253  16 L--w    1    1      0 LVM-6DoB20ypbwcGOoRHiX0t8wKAY3oC9BXtSGzQ1wy8fGa9okuQm1NxtPCHnmt0dtO6
vg_${VG}-${LV2}_lv   253  17 L--w    1    3      0 LVM-6DoB20ypbwcGOoRHiX0t8wKAY3oC9BXtmgFlfK9Bilo3IAWxjqwR7dUA8Oq0Fu70
mpathj                            253  15 L--w    1    1      1 mpath-266772bd8af26c781
centos-home                       253   2 L--w    1    1      0 LVM-GAWmujV5zkPn9byt74PY7byRJUWi8UmYSqsQjkt2uTDQ1q5Do38GXYynZhTiLhYw
mpathi                            253  14 L--w    1    1      1 mpath-254a27729bfbfc8c6
mpathh                            253  13 L--w    1    1      1 mpath-2a0ff1a2db7f22f00
mpathg                            253  12 L--w    1    1      1 mpath-27a5ce08413f48f13
mpathf                            253  11 L--w    1    1      1 mpath-2d19e7002c7a41667
centos-swap                       253   1 L--w    2    1      0 LVM-GAWmujV5zkPn9byt74PY7byRJUWi8UmYtA03QjyV1IlWWk9Nz9cHJFKN16SJZ0T5
centos-root                       253   0 L--w    1    1      0 LVM-GAWmujV5zkPn9byt74PY7byRJUWi8UmYCMmaP0envGMf3gk8JhcyoQIQPGmjrL6w

Como eu reinstalo os metadados do LVM? É simplesmente uma questão de vgcfgrestore conforme descrito aqui:

link

Parece que tenho um backup em /etc/lvm/backup .

Eu hesito em mexer com isso no caso de perder algum dado nos sistemas de arquivos. A recuperação é possível, mas não sem tempo de inatividade e atraso do sistema.

EDIT: saída de pvs , lvs e vgs abaixo:

[root@dfile-server ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--  273.80g 4.00m
[root@file-server ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos -wi-ao----  46.57g
  root centos -wi-ao---- 221.64g
  swap centos -wi-ao----   5.59g
[root@file-server ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   3   0 wz--n- 273.80g 4.00m
    
por Vince 23.08.2016 / 16:58

1 resposta

1

Conforme diagnosticado nos comentários, o problema não teve nada a ver com a atualização da SAN, e sim com o daemon lvmetad retornando informações antigas / incorretas.

Isso foi confirmado parando lvmetad ( systemctl stop lvmetad.service; systemctl stop lvmetad.socket ) e emitindo pvs , que, analisando diretamente os dispositivos de bloco, retornam informações corretas.

A correção permanente era atualizar lvmetad cache, informando que algo mudou. Isso foi realizado executando pvscan --cache , reativando lvmetad ( systemctl start lvmetad.service; systemctl start lvmetad.socket ) e finalmente executando outro pvs --cache .

Depois disso, o% normalpvs (com lvmetad ativo) retornou os dados corretos.

    
por 24.08.2016 / 14:55