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 paraallocate
, 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 parawarn
, 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.