1. 개요
- LVM 환경에서
pvmove
를 사용해 /dev/vdb1 → /dev/vdc1로 데이터를 무중단(온라인) 이관하는 과정을 다룹니다. - 이관 전/후 LV–PV 매핑 확인과 진행률 출력 예시를 포함합니다.
2. 버전
- Rocky Linux 9.5
3. 설명
3-1. PV 이관이란?
- 정의: 동일한 VG 내에서 소스 PV(예:
/dev/vdb1
)에 올라간 PE(Physical Extent)들을 대상 PV(예:/dev/vdc1
)로 온라인으로 옮기는 작업입니다. - 명령:
pvmove [옵션] <소스PV> <대상PV>
명령을 사용합니다. - 특징: 마운트되어 사용 중인 LV도 서비스 중단 없이 이동이 가능합니다(내부적으로 일시 미러링 후 매핑을 전환합니다)
3-2. PV 이관을 사용하는 이유
- 디스크 교체/퇴역: 장애 징후가 있는 디스크(PV)에서 데이터를 대피한 뒤
vgreduce
로 제거합니다. - 스토리지 마이그레이션: 느린/구형 HDD에서 SSD/NVMe 등으로 무중단 전환을 수행합니다.
- 용량/배치 재구성: 특정 PV의 공간을 비워 다른 용도로 활용하거나, 균형 배치로 핫스팟을 완화합니다.
- LUN 재정렬/유지보수: 스토리지 측 LUN 변경·정비 전에 안전하게 데이터를 이동합니다.
- VG 단순화: 다수 PV에 흩어진 세그먼트를 정리하여 운영·관리 편의성을 향상합니다.
3-3. PV 이관 동작 원리(내부 메커니즘)
- 세그먼트 식별: 소스 PV에 존재하는 **사용 중 PE(= LV 조각들)**을 식별합니다.
- 임시 미러링 구성: 해당 범위를 임시 미러/매핑으로 잡아 복제 경로를 구성합니다.
- 데이터 복사: 소스 → 대상 PV로 PE 단위 동기 복제를 수행하며 진행률을 표시합니다.
- 메타데이터 스위치: 복제가 완료되면 LV의 devices 매핑을 대상 PV로 전환합니다.
- 정리: 임시 구조를 제거하여, 최종적으로 LV가 대상 PV에만 존재하도록 정돈합니다.
4. 이관 전 상태 확인
# lvs -o lv_name,lv_size,devices vgtest
출력 예시:
LV LSize Devices lv_ext4 15.00g /dev/vdb1(0) lv_ext4 15.00g /dev/vdb1(5120) lv_xfs 20.00g /dev/vdb1(2560) lv_xfs 20.00g /dev/vdb1(7680)
5. PV 이관 실행
# pvmove /dev/vdb1 /dev/vdc1
출력 예시:
/dev/vdb1: Moved: 0.23% /dev/vdb1: Moved: 24.72% /dev/vdb1: Moved: 28.57% /dev/vdb1: Moved: 42.86% /dev/vdb1: Moved: 68.56% /dev/vdb1: Moved: 71.43% /dev/vdb1: Moved: 97.12% /dev/vdb1: Moved: 100.00%
6. 이관 후 상태 확인
# lvs -o lv_name,lv_size,devices vgtest
출력 예시:
LV LSize Devices lv_ext4 15.00g /dev/vdc1(0) lv_xfs 20.00g /dev/vdc1(3840)