단일 VG와 여러 개의 미러링된 LV가 있는 Linux(fedora 30) 시스템이 있습니다. LV를 두 개의 PV에 미러링했지만 PV 중 하나가 실패했습니다. 어쨌든 2TB PV에서 4TB PV로 마이그레이션하고 싶었기 때문에 새 PV를 추가하고 모든 LV를 세 개의 미러(m= 2)에 캐스팅했습니다. 이제 내 LV가 모두 안전하게 미러링되었으므로 손상된 드라이브를 삭제할 차례입니다. 그러나 "lvconvert -m1 LVNAME PV2REMOVE"는 이것이 작동하지 않는다고 말합니다. 아마도 "vgreduce --removemissing"을 고려해야 할 것입니다.
물론 이것은 아무 일도 하지 않으며 "--force" 옵션을 사용하여 읽은 내용에 따르면 모든 LV가 삭제됩니다.
lvs -a -o +장치 | tr -s '\t ' ' '
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
NAS VG2TB rwi-aor-r- 200.00g 100.00 NAS_rimage_0(0),NAS_rimage_1(0)
[NAS_rimage_0] VG2TB vwi-aor-r- 200.00g
[NAS_rimage_1] VG2TB iwi-aor--- 200.00g /dev/sdb1(392715)
[NAS_rmeta_0] VG2TB ewi-aor-r- 4.00m
[NAS_rmeta_1] VG2TB ewi-aor--- 4.00m /dev/sdb1(392714)
PythonNAS VG2TB rwi-aor-r- 100.00g 100.00 PythonNAS_rimage_0(0),PythonNAS_rimage_1(0),PythonNAS_rimage_2(0)
[PythonNAS_rimage_0] VG2TB vwi-aor-r- 100.00g
[PythonNAS_rimage_1] VG2TB vwi-aor-r- 100.00g
[PythonNAS_rimage_2] VG2TB iwi-aor--- 100.00g /dev/sdb1(341512)
[PythonNAS_rmeta_0] VG2TB ewi-aor-r- 4.00m
[PythonNAS_rmeta_1] VG2TB ewi-aor-r- 4.00m
[PythonNAS_rmeta_2] VG2TB ewi-aor--- 4.00m /dev/sdb1(341511)
lv_VM_Data VG2TB rwi-a-r-r- 200.00g 100.00 lv_VM_Data_rimage_0(0),lv_VM_Data_rimage_1(0),lv_VM_Data_rimage_2(0)
[lv_VM_Data_rimage_0] VG2TB vwi-aor-r- 200.00g
[lv_VM_Data_rimage_1] VG2TB vwi-aor-r- 200.00g
[lv_VM_Data_rimage_2] VG2TB iwi-aor--- 200.00g /dev/sdb1(290311)
[lv_VM_Data_rmeta_0] VG2TB ewi-aor-r- 4.00m
[lv_VM_Data_rmeta_1] VG2TB ewi-aor-r- 4.00m
[lv_VM_Data_rmeta_2] VG2TB ewi-aor--- 4.00m /dev/sdb1(290310)
lv_VM_Root VG2TB rwi-aor-r- 60.00g 100.00 lv_VM_Root_rimage_0(0),lv_VM_Root_rimage_1(0),lv_VM_Root_rimage_2(0)
[lv_VM_Root_rimage_0] VG2TB vwi-aor-r- 60.00g
[lv_VM_Root_rimage_1] VG2TB vwi-aor-r- 60.00g
[lv_VM_Root_rimage_2] VG2TB iwi-aor--- 60.00g /dev/sdb1(367113)
[lv_VM_Root_rmeta_0] VG2TB ewi-aor-r- 4.00m
[lv_VM_Root_rmeta_1] VG2TB ewi-aor-r- 4.00m
[lv_VM_Root_rmeta_2] VG2TB ewi-aor--- 4.00m /dev/sdb1(367112)
답변1
도대체 다른 PV를 어떻게 삭제하나요?
LVM이 아는 한, 데이터의 유일한 최신 복사본은 열려 있는 것으로 보입니다 /dev/sdb1
. 다른 모든 복사본은 가상이므로 동기화해야 합니다. 따라서 lvchange --refresh <LV>
먼저 액세스 가능한 모든 PV를 동기화 해야 할 수도 있습니다 .
다른 PV가 더 이상 시스템에 표시되지 않는 경우(즉, 완전히 작동하지 않거나 당겨진 경우) VG에 새 PV를 추가하고 를 실행합니다 lvconvert --repair <name of LV> [new PV]
. LVM이 여전히 불량 디스크를 발견하면 명령은 입니다 lvconvert --replace <old PV> <name of LV> [new PV]
.
다른 Unix 변형의 LVM에 익숙하다면 Linux의 LVM 내보내기/가져오기 논리가 매우 다르게 작동한다는 점에 유의하십시오. Linux에서 다른 Unix의 "가져오기"는 일반적으로 새 장치가 감지되거나 수동으로 실행될 때 자동으로 발생하며 매우 안전 vgscan
합니다 vgscan
. 어떤 종류의 충돌이 감지되면 해당 장치에 대한 활성 LVM 구성의 어떤 부분도 덮어쓰지 않습니다. 충돌 문제인 경우 무엇이 잘못되었는지 알려주고 다시 시도하기 전에 문제를 해결하기를 원합니다 vgscan
.
Linux LVM의 "내보내기" 작업은 실제로 "이 VG의 자동 및 수동 활성화 방지: 다른 VG와 충돌하는 것으로 확인되면 내보낸 VG를 무시합니다"와 비슷합니다. "가져오기" 작업은 단순히 속성을 삭제합니다. 따라서 LVM VG가 포함된 디스크 세트를 다른 호스트로 이동하려고 준비할 때 유용하지만 그 이상으로는 생각만큼 유용하지 않을 수 있습니다.