Red Hat Training

A Red Hat training course is available for RHEL 8

8.17. RAID 오류 정책 설정

LVM RAID는 lvm.conf 파일의 raid_fault_policy 필드에 의해 정의된 기본 설정에 따라 자동 방식으로 장치 오류를 처리합니다.

  • raid_fault_policy 필드가 allocate 로 설정된 경우 시스템은 볼륨 그룹의 예비 장치로 오류가 발생한 장치를 대체하려고 합니다. 사용 가능한 예비 장치가 없으면 시스템 로그에 보고됩니다.
  • raid_fault_policy 필드가 warn 으로 설정되면 시스템에서 경고가 생성되고 로그는 장치가 실패했음을 나타냅니다. 이를 통해 사용자는 수행할 작업을 결정할 수 있습니다.

사용 편의성을 지원하기에 충분한 장치가 남아 있는 경우 RAID 논리 볼륨이 계속 작동합니다.

8.17.1. 할당 RAID 오류 정책

다음 예에서 raid_fault_policy 필드는 lvm.conf 파일에 할당 하도록 설정되어 있습니다. RAID 논리 볼륨은 다음과 같이 배치됩니다.

# 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)

/dev/sde 장치가 실패하면 시스템 로그에 오류 메시지가 표시됩니다.

# 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.

raid_fault_policy 필드가 할당 되도록 설정되어 있으므로 실패한 장치는 볼륨 그룹의 새 장치로 교체됩니다.

# 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)

실패한 장치가 교체되었지만 디스플레이는 여전히 LVM에 실패한 장치를 찾을 수 없음을 나타냅니다. 이는 실패한 장치가 RAID 논리 볼륨에서 제거되었지만 볼륨 그룹에서 실패한 장치가 아직 제거되지 않았기 때문입니다. 볼륨 그룹에서 실패한 장치를 제거하려면 first reduce --removemissing VG 를 실행할 수 있습니다.

raid_fault_policyallocate 로 설정되었지만 예비 장치가 없는 경우 할당이 실패하고 논리 볼륨이 그대로 유지됩니다. 할당이 실패하면 드라이브를 수정한 다음 lvresh 명령의 --refresh 옵션을 사용하여 실패한 장치를 복구할 수 있습니다. 또는 오류가 발생한 장치를 교체할 수 있습니다.

8.17.2. 경고 RAID 오류 정책

다음 예에서 raid_fault_policy 필드는 lvm.conf 파일에서 warn 으로 설정되어 있습니다. RAID 논리 볼륨은 다음과 같이 배치됩니다.

# 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/sdh1(1)
  [my_lv_rimage_1]        /dev/sdf1(1)
  [my_lv_rimage_2]        /dev/sdg1(1)
  [my_lv_rmeta_0]         /dev/sdh1(0)
  [my_lv_rmeta_1]         /dev/sdf1(0)
  [my_lv_rmeta_2]         /dev/sdg1(0)

/dev/sdh 장치가 실패하면 시스템 로그에 오류 메시지가 표시됩니다. 그러나 이 경우 LVM은 이미지 중 하나를 교체하여 RAID 장치를 자동으로 복구하지 않습니다. 대신 장치에 오류가 발생하면 lvconvert 명령의 --repair 인수로 장치를 교체할 수 있습니다.