6.2. LVM Mirror 실패에서 복구
이 섹션에서는 물리 볼륨의 기본 장치가 중단되고
mirror_log_fault_policy
매개변수가 제거
되도록 설정되어 있기 때문에 LVM 미러링된 볼륨의 한 부분이 실패하는 상황에서 복구하는 예를 제공합니다. 이를 위해서는 미러를 수동으로 다시 빌드해야 합니다. mirror_log_fault_policy
매개변수 설정에 대한 자세한 내용은 4.4.4.1절. “미러링된 논리 볼륨 실패 정책” 을 참조하십시오.
미러 다리가 실패하면 LVM은 미러링된 볼륨을 선형 볼륨으로 변환하여 미러링된 중복이 없는 이전과 마찬가지로 계속 작동합니다. 이 시점에서 대체 물리적 장치로 사용할 새 디스크 장치를 시스템에 추가하고 미러를 다시 빌드할 수 있습니다.
다음 명령은 미러에 사용할 물리 볼륨을 생성합니다.
# pvcreate /dev/sd[abcdefgh][12]
Physical volume "/dev/sda1" successfully created
Physical volume "/dev/sda2" successfully created
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdc2" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sdd2" successfully created
Physical volume "/dev/sde1" successfully created
Physical volume "/dev/sde2" successfully created
Physical volume "/dev/sdf1" successfully created
Physical volume "/dev/sdf2" successfully created
Physical volume "/dev/sdg1" successfully created
Physical volume "/dev/sdg2" successfully created
Physical volume "/dev/sdh1" successfully created
Physical volume "/dev/sdh2" successfully created
다음 명령은 볼륨 그룹 Cryostat 및
미러링
된 볼륨 groupfs
를 생성합니다.
#vgcreate vg /dev/sd[abcdefgh][12]
Volume group "vg" successfully created #lvcreate -L 750M -n groupfs -m 1 vg /dev/sda1 /dev/sdb1 /dev/sdc1
Rounding up size to full physical extent 752.00 MB Logical volume "groupfs" created
lvs 명령을 사용하여 미러 브릿지 및 미러 로그의 미러링된 볼륨 및 기본 장치의 레이아웃을 확인할 수 있습니다. 첫 번째 예에서 미러는 아직 완전히 동기화되지 않았습니다. 계속하기 전에
Copy%
필드가 100.00으로 표시될 때까지 기다려야 합니다.
#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices groupfs vg mwi-a- 752.00M groupfs_mlog 21.28 groupfs_mimage_0(0),groupfs_mimage_1(0) [groupfs_mimage_0] vg iwi-ao 752.00M /dev/sda1(0) [groupfs_mimage_1] vg iwi-ao 752.00M /dev/sdb1(0) [groupfs_mlog] vg lwi-ao 4.00M /dev/sdc1(0) #lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices groupfs vg mwi-a- 752.00M groupfs_mlog 100.00 groupfs_mimage_0(0),groupfs_mimage_1(0) [groupfs_mimage_0] vg iwi-ao 752.00M /dev/sda1(0) [groupfs_mimage_1] vg iwi-ao 752.00M /dev/sdb1(0) [groupfs_mlog] vg lwi-ao 4.00M i /dev/sdc1(0)
이 예에서는 미러
/dev/sda1
의 기본 브릿지가 실패합니다. 미러링된 볼륨에 대한 쓰기 활동으로 인해 LVM에서 실패한 미러를 탐지합니다. 이 경우 LVM은 미러를 단일 선형 볼륨으로 변환합니다. 이 경우 변환을 트리거하려면 dd 명령을 실행합니다.
# dd if=/dev/zero of=/dev/vg/groupfs count=10
10+0 records in
10+0 records out
lvs 명령을 사용하여 장치가 이제 선형 장치인지 확인할 수 있습니다. 실패한 디스크로 인해 I/O 오류가 발생했습니다.
# lvs -a -o +devices
/dev/sda1: read failed after 0 of 2048 at 0: Input/output error
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
groupfs vg -wi-a- 752.00M /dev/sdb1(0)
이 시점에서 논리 볼륨을 계속 사용할 수 있어야 하지만 미러 중복은 없습니다.
미러링된 볼륨을 다시 빌드하려면 손상된 드라이브를 교체하고 물리 볼륨을 다시 생성합니다. pvcreate 명령을 실행할 때 새 디스크를 교체하는 대신 동일한 디스크를 사용하는 경우 "상위" 경고가 표시됩니다. Cryostatreduce --removemissing 명령을 실행하여 경고가 표시되지 않도록 할 수 있습니다.
#pvcreate /dev/sdi[12]
Physical volume "/dev/sdi1" successfully created Physical volume "/dev/sdi2" successfully created #pvscan
PV /dev/sdb1 VG vg lvm2 [67.83 GB / 67.10 GB free] PV /dev/sdb2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdi1 lvm2 [603.94 GB] PV /dev/sdi2 lvm2 [603.94 GB] Total: 16 [2.11 TB] / in use: 14 [949.65 GB] / in no VG: 2 [1.18 TB]
다음으로 새 물리 볼륨을 사용하여 원래 볼륨 그룹을 확장합니다.
#vgextend vg /dev/sdi[12]
Volume group "vg" successfully extended #pvscan
PV /dev/sdb1 VG vg lvm2 [67.83 GB / 67.10 GB free] PV /dev/sdb2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdc2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdd2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sde2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdf2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdg2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh1 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdh2 VG vg lvm2 [67.83 GB / 67.83 GB free] PV /dev/sdi1 VG vg lvm2 [603.93 GB / 603.93 GB free] PV /dev/sdi2 VG vg lvm2 [603.93 GB / 603.93 GB free] Total: 16 [2.11 TB] / in use: 16 [2.11 TB] / in no VG: 0 [0 ]
선형 볼륨을 원래 미러링된 상태로 다시 변환합니다.
# lvconvert -m 1 /dev/vg/groupfs /dev/sdi1 /dev/sdb1 /dev/sdc1
Logical volume mirror converted.
lvs 명령을 사용하여 미러가 복원되었는지 확인할 수 있습니다.
# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
groupfs vg mwi-a- 752.00M groupfs_mlog 68.62 groupfs_mimage_0(0),groupfs_mimage_1(0)
[groupfs_mimage_0] vg iwi-ao 752.00M /dev/sdb1(0)
[groupfs_mimage_1] vg iwi-ao 752.00M /dev/sdi1(0)
[groupfs_mlog] vg lwi-ao 4.00M /dev/sdc1(0)