Red Hat Training

A Red Hat training course is available for RHEL 8

10.15. Estabelecendo uma política de falhas RAID

LVM RAID trata as falhas de dispositivos de forma automática com base nas preferências definidas pelo campo raid_fault_policy no arquivo lvm.conf.

  • Se o campo raid_fault_policy estiver configurado para allocate, o sistema tentará substituir o dispositivo falhado por um dispositivo de reposição do grupo de volume. Se não houver um dispositivo de reposição disponível, isto será relatado ao registro do sistema.
  • Se o campo raid_fault_policy estiver configurado para warn, o sistema produzirá um aviso e o registro indicará que um dispositivo falhou. Isto permite que o usuário determine o curso de ação a ser tomado.

Enquanto houver dispositivos suficientes para suportar a usabilidade, o volume lógico RAID continuará a operar.

10.15.1. A política de falhas de alocação RAID

No exemplo a seguir, o campo raid_fault_policy foi ajustado para allocate no arquivo lvm.conf. O volume lógico RAID está disposto da seguinte forma.

# lvs -a -o name,copy_percent,devices my_vg
  LV               Copy%  Devices
  my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
  [my_lv_rimage_0]        /dev/sde1(1)
  [my_lv_rimage_1]        /dev/sdf1(1)
  [my_lv_rimage_2]        /dev/sdg1(1)
  [my_lv_rmeta_0]         /dev/sde1(0)
  [my_lv_rmeta_1]         /dev/sdf1(0)
  [my_lv_rmeta_2]         /dev/sdg1(0)

Se o dispositivo /dev/sde falhar, o log do sistema exibirá mensagens de erro.

# grep lvm /var/log/messages
Jan 17 15:57:18 bp-01 lvm[8599]: Device #0 of raid1 array, my_vg-my_lv, has failed.
Jan 17 15:57:18 bp-01 lvm[8599]: /dev/sde1: read failed after 0 of 2048 at
250994294784: Input/output error
Jan 17 15:57:18 bp-01 lvm[8599]: /dev/sde1: read failed after 0 of 2048 at
250994376704: Input/output error
Jan 17 15:57:18 bp-01 lvm[8599]: /dev/sde1: read failed after 0 of 2048 at 0:
Input/output error
Jan 17 15:57:18 bp-01 lvm[8599]: /dev/sde1: read failed after 0 of 2048 at
4096: Input/output error
Jan 17 15:57:19 bp-01 lvm[8599]: Couldn't find device with uuid
3lugiV-3eSP-AFAR-sdrP-H20O-wM2M-qdMANy.
Jan 17 15:57:27 bp-01 lvm[8599]: raid1 array, my_vg-my_lv, is not in-sync.
Jan 17 15:57:36 bp-01 lvm[8599]: raid1 array, my_vg-my_lv, is now in-sync.

Desde que o campo raid_fault_policy foi ajustado para allocate, o dispositivo falhado é substituído por um novo dispositivo do grupo de volume.

# lvs -a -o name,copy_percent,devices vg
  Couldn't find device with uuid 3lugiV-3eSP-AFAR-sdrP-H20O-wM2M-qdMANy.
  LV            Copy%  Devices
  lv            100.00 lv_rimage_0(0),lv_rimage_1(0),lv_rimage_2(0)
  [lv_rimage_0]        /dev/sdh1(1)
  [lv_rimage_1]        /dev/sdf1(1)
  [lv_rimage_2]        /dev/sdg1(1)
  [lv_rmeta_0]         /dev/sdh1(0)
  [lv_rmeta_1]         /dev/sdf1(0)
  [lv_rmeta_2]         /dev/sdg1(0)

Observe que mesmo que o dispositivo com defeito tenha sido substituído, o visor ainda indica que a LVM não conseguiu encontrar o dispositivo com defeito. Isto porque, embora o dispositivo com falha tenha sido removido do volume lógico RAID, o dispositivo com falha ainda não foi removido do grupo de volume. Para remover o dispositivo com falha do grupo de volume, você pode executar vgreduce --removemissing VG.

Se o raid_fault_policy foi configurado para allocate, mas não há dispositivos de reserva, a alocação falhará, deixando o volume lógico como está. Se a alocação falhar, você tem a opção de consertar o drive, iniciando então a recuperação do dispositivo que falhou com a opção --refresh do comando lvchange. Alternativamente, você pode substituir o dispositivo que falhou.